sparsify: integrating virt-sparsify into vdsm

This patch adds virt-sparsify support in vdsm. Sparse disk images
which are being used grow in size over a period of time but still
have considerable amount of free space that may be shrunk back
using virt-sparsify utility provided by libguestfs.

The detailed expected execution flow is as follows-

* The user selects a sparse volume to run virt-sparsify on to reclaim
  free space.
* User creates a new destination volume using createVolume of the
  same virtual size as the source volume.
* User creates a snapshot of the source volume, which will be used
  as a temporary volume for virt-sparsify (--tmp prebuilt:file)
* User runs sparsify (implemented in this patch) providing as
  arguments temporary volume and destination volume.
  (source volume is just the parent of temporary volume, so user
  doesn't need to specify that)
* Once sparsify is done (pass or fail) user removes the temporary
  volume.
* User may now check and verify the destination volume, and
  optionally remove the source volume.

Change-Id: Id7bd2b4b6d45781fa27a128dd68d14b7561d0901
Signed-off-by: Utkarsh <utkarshsins@gmail.com>
Reviewed-on: http://gerrit.ovirt.org/28328
Reviewed-by: Federico Simoncelli <fsimonce@redhat.com>
Reviewed-by: Nir Soffer <nsoffer@redhat.com>