Add hyper_v unattended file

It does this with the following:

- expects that puppet will write a hostname specific
file into the installer directory where arbitrary options
can be passed (implemented in asm::server)
- the unattended file uses the key os_type from this file to determine
which unattened file to use (if it is equal to hyperv, it will use the
hyperv specific file)
- add a new hyperv specific unattended file

Also Adds a ton of parameters to unattended template. These
parameters are expected to come from this installer options file
as well.

to support:
- product_key
- language
- timezone
- keyboard