block: add header update capability for VHDX images.

This adds the ability to update the headers in a VHDX image, including
generating a new MS-compatible GUID.

As VHDX depends on uuid.h, VHDX is now a configurable build option.
If VHDX support is enabled, that will also enable uuid as well.

To enable/disable VHDX:  --enable-vhdx, --disable-vhdx
vhdx debug print
block: add write support for VHDX images

This adds in write support for VHDX images.  This supports writing to
both dynamic and fixed VHDX images.  Differencing images are still
unsupported.
code movement: VHDXMetadataEntries and BDRVVHDXState structs to
header.
block: definition of VHDX Log entry structures in vhdx header
adding vhdx-log.c