make provisioningType constructor parameter mandatory in VolumeVO class
define Preallocation enum
set preallocation option as qemu-img option
fix allocateTemplatedVolume to meet qcow2 constraint

backing file option cannot be used with preallocation=metadata
make DataDisk sparse ready
set provisioningType in allocVolume method
refactor LibVirtStorageAdaptor#createPhysicalDisk
replace libvirt by qemu-img for volume creation

to support preallocation option
refactor LibvirtStorageAdoptor#createDiskFromTemplate to shape up
change qemu-img info output format to get acurate disk size

change output format from human to json
Feature: add sparse mode support (hard coding)
make volume provisioning type configurable
make disk provisioning type configurable from disk offering
add provisioning type to volumes_view
alter disk offering view to support provisioning type
make disk|service offering API return a provisioning type
add UI to display and configure provisioning type of a volume