Added basic support for composite classes.
Added basic support for composite classes.

Needs more in-depth testing, but should add version attribute to all
classes annotated with XMTComposable. The marshalling process traverses
the DOM, checking the class type and acting accordingly.

The unmarshalling step is a bit more complicated and uses a bottom up
approach to migrate elements in the leaves of the DOM, moving upwards
to the root element. Special care is to taken to ensure that a node is
added into the same position as it was previously detached from.

Does not support unmarshalling composite instances contained within
collections.

visemet/xmt-composable