libxl: ocaml: event management

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
libxl: ocaml: allow device operations to be called asynchronously

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
libxl: ocaml: add NIC helper functions

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
libxl: ocaml: add PCI device helper functions

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
libxl: ocaml: add disk and cdrom helper functions

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
libxl: ocaml: add VM lifecycle operations

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
libxl: ocaml: provide default records for libxl types

Libxl functions such as libxl_domain_create_new take large structs
of configuration parameters. Often, we would like to use the default
values for many of these parameters.

This commit makes OCaml records of defaults available for all libxl
struct and keyed-union types, which can be used as a base to construct
your own records, and to selectively override parameters where needed.

For example, a Domain_create_info record can now be created as follows:

let c_info = Xenlight.Domain_create_info.({ default with
	ty = Xenlight.DOMAIN_TYPE_PV;
	name = Some vm_name;
	uuid = vm_uuid;
}) in

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
libxl: ocaml: use string for uuid

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
warning