libvirt: lxml behavior breaks version check.

lxml doesn't roundtrip empty strings, meaning if you serialize
and element with value '', when you derserialize it, the value will be
`None`.

This broke the version_string_with_package check because None and ''
will not compare as equivalent.

The solution is to coerce the None value back to an empty string before
running the check.

Change-Id: Ia3a8ae68f12a4645057d243fdee59197df40e8d3
Ensure macs can be serialized.

This patch uses to_primitive() to ensure that the macs argument to the
rpcapi method allocate_for_instance() can be serialized by rpc drivers.
Specifically, the powervm driver uses a set() here, and that will cause
breakage in non-kombu drivers.

Fix bug 1131035.

Change-Id: I5729c5854799e49c6598e4dd2a4da487598307f1
Merge "Ensure macs can be serialized."
Merge "libvirt: lxml behavior breaks version check."