Creates the concept of an XML template, which is a description of
how to serialize an object into XML. XML templates are split into
master and slave templates, and slave templates can be attached to
master templates to augment the serialization. The expected use
case is with extensions, allowing extensions to not only add data
to the object, but to also ensure that the new data gets
serialized into the output XML representation.
Also includes lazy serialization, for use by extensions.
Change-Id: Ifd8493be04c73bbb2a850080b687c5e799c48239