CP-4042: Add VM.generation-id field to API

Add a new generation-id field to the the API. This field is a string, which
consists of two 64-bit integers concatenated together and separated by ":". We
pass this value directly into the platform map of both PV and HVM guests.
hvmloader takes care of updating the ACPI device. The generation-id will be
updated every time a VM is run "from a different configuration," i.e. when the
VM is imported, reverted from snapshot/checkpoint, cloned/copied, or
disaser-recovered. It is not the generation-id is not updated on normal VM
lifecycle operations, nor is it updated on HA failover.

See the spec here: http://go.microsoft.com/fwlink/?LinkId=260709

Signed-off-by: Mike McClurg <mike.mcclurg@citrix.com>

Conflicts:
	ocaml/xapi/xapi_vm_clone.ml
	ocaml/xapi/xapi_vm_helpers.ml
CP-4042: Refresh GenID on VM.import, VM.revert

These two operations, along with VM.clone (handled in the previous commit)
cover the rest of the cases specified by the VM Generation ID spec.
Specifically, refreshing on VM.import also covers DR and VM.import, and
VM.revert covers all of the snapshot revert cases (snapshot, snapshot with
quiese, and checkpoint).

Signed-off-by: Mike McClurg <mike.mcclurg@citrix.com>