This is the second version of this patch. I'll just summarise what's
changed below rather than reiterating what it does over again. I
believe this addresses everyone's concerns, _except_ for a rather long
email from Dan to which I'm going to provide a separate reply.
Changes over previous patch:
* strjoin is gone, and replaced by virBuffer* [DV]
** however, in order to do that I had to duplicate the buffer handling
code for qemud (since qemud doesn't link with libvirt and the virBuffer*
code depends on other internals of libvirt).
* <bits> is now optional, and where it's too hard to determine it
reliably, we don't include it in the XML output [DV, danpb]
* <domain><type> -> <domain_type> [markmc]
Rich.