Make block device size equal to virtual size

When snapshotting make sure that the size of the underlying block
device is equal to the input media's virtual size. If the input media
is not raw, the QEMU image driver may grow the underlying image. The
block device should be big enough to allow this kind of operations.
Add an Image method for computing the MD5 checksum

This used to be a class in the util module, but since this is only used
on the Image, it suits better there.
Support non-raw images

Use qemu-nbd to export a QEMU image as raw where needed
Use qcow2 to snapshot image files

Only use the device mapper when snapshotting block devices. If the
input media is a regular file, then create a qcow2 image and define
the original media as backing_file.
docs: Update the "supported images" section

snf-image-creator can work with different image formats nowadays.
windows: Fix a bug in the VirtIO installation code

Make sure the guestfs VM is killed before we launch the VM that
installs the VirtIO drivers.
windows: Increase the connectivity check timeout