Add device attribute in Disk class

This attribute hosts the block device associated with this Disk
instance. This can be the original media if the source media is a block
device, a loop device of the original media if the original media is a
regular file or a loop device of a temporary object if the original
media is a directory.
Add REG_{SZ,DWORD,BINARY} helper funcs in Registry

Those lambda functions are used to set a value of type REG_SZ,
REG_DWORD and REG_BINARY in a registry node
Extend SysprepParam class to include a value check

Extend the SysprepParam class to support defining a custom check
function which can be used to check if the value given by a user when
updating a sysprep parameter is valid.
Add extra virtio sysprep parameter in windows

This parameter points to a directory that hosts virtio drivers for
windows.
windows: Install viostor driver if missing

Add a dirty way to install the viostor driver in windows in order
to make them bootable. This works on Windows 2008R2
windows: Add REG_EXPAND_SZ() registry helper func

Add this helper lambda function that can be used to update the value of
type REG_EXPAND_SZ
windows: Add systemroot as a member in Windows

It is used many cases and it is better if we cache it.
windows: Upload the virtio drivers to the media

Upload the virtio drivers to the media and add the drivers directory to
the DevicePath Registry key
windows: Add script to install the virtio drivers

Add a powershell script in the input media that will properly install
the virtio drivers in the next boot.
Add check_version method in OSBase

This method can be used to compare the OS version against one specified
by the user.
Add Mount context manager in OSBase cls

Remove mount and unmount methods and add a mount context manager for
mounting the media file systems.
windows: Support WIN8 virtio driver installation

Support installing virtio drivers in Windows 8, 8.1, 2012 and 2012R2
windows: Monitor the VM booting in virtio install

When installing the virtio drivers monitor the booting process of
the windows VM
windows: Make install_virtio_drivers() public

Make install_virtio_drivers a public method of the class Windows
windows: Rewrite the INF file parsing function

Collect more detailed information about the installed VirtIO drivers
windows: Add a VirtIO install entry in dialog menu

Merge the Parameter menu entry with Sysprep and add a new entry for
installing VirtIO drivers. This will only be visible in Windows.
windows: Fix the valid VirtIO directory check

Rewrite the virtio_dir_check function that checks if a given directory
is indeed hosting VirtIO drivers.
windows: Uninstall the old VirtIO drivers

When installing new drivers, make sure the old ones get uninstalled.
windows: Make Windows INF parsing more accurate

 * Detect the VirtIO driver type by the Device ID it refers to and not
   the catalog file name
 * Check if a driver is suitable for the input media by examining the
   TargetOSVersion field
windows: Only install validated VirtIO drivers

Only install the drivers that where previously validated by
_fetch_virtio_drivers()