backend: Enable configuration of VM serial number

Added hierarchical configuration of serial numbers
for VMs.

The configuration "policy" is represented by a set of two properties:
enum SerialNumberPolicy { HostId, VmId, Custom } and
String customSerialNumber (used only in conjunction with the "Custom"
policy.)

* HostId policy means that no value should be passed to VDSM during the
  run of the Vm and thus forcing VDSM to fall back to the legacy mode
  when it will use HostUUID as Vm's serial number.

* VmId policy means the VmUUID will be used as serial number giving user
  the ability to depend on the value of serial number between
  consecutive runs.

* Custom policy means user can provide arbitrary string as serial number
  specified in the "customSerialNumber" property.

This two values can be found in Vm, Template, Cluster and lastly in
engine-config. In Vm, Template and Cluster the serialNumberPolicy is
allowed to be set to 'null' meaning that default from higher entity will
be used. The hierarchy is: VM -> Cluster -> engine-config

Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=918138
Change-Id: Ife7eb050ccf59603b905d16fd72e77521d4579df
Signed-off-by: Martin Betak <mbetak@redhat.com>