Switch license to GPLv3

According to the decision of the GRNET Board of Directors,
switch license to GPLv3.

This commit will be propagated to the release
and master branches based on git flow, and the next
release will be licensed as GPLv3.
Add a context manager for opening hive files

Add a context manager in windows.py for reading and writing hive
files. Whenever a method needs to access the Windows registry it should
use this context manager.
Convert windows.py module into a package

As the windows module got bigger and bigger we had to break it into more files
Add sysprep params before init is executed

In add_sysprep_param __init__ decorator, add the sysprep parameters
before executing the init function. This is needed if we want to be
able to access the sysprep_params dictionary from within __init__.
Move winexe.py module inside the windows package
windows: Move code from Windows class to VM

Move all helper methods that control the Winodows VM from Windows to
VM class
windows: spit do_sysprep to reduce complexity

Add a new _exec_sysprep_tasks method that is called by do_sysprep and
hosts the actual code for executing the system preparation tasks
windows: Create a new registry module

This modules hosts the Registry class which contains all the registry
manipulation code previously hosted under the Windows class
Fix a bug in sysprep param handling in dialog_menu

If the needed sysprep parameters had all default values,
snf-image-creator would crash when trying to run the image
customization. This bug could not be triggered from the current os_type
classes.
windows: Reset the password when customizing

Don't ask the user to enter an Administrator password before cleaning up
a Windows image. Reset the password before starting the process and
assign the old value if needed at the end.
windows: Detect if the media is already sysprepped

Add code to check if the source media is a sysprepped windows image. If
so, don't allow it to be further customized
Rewrite the sysprep_parameter mechanism

Rewrite the mechanism to have better control on the system preparation
parameters. Also change the way the parameters are updated in the UI.