Adds Hyper-V serial console log

Introduces the VM serial output log feature to the Hyper-V Nova
 Compute driver.

The VM serial port COM0 is redirected to a named pipe so that a
worker can take the VM output and write it to a file.

The VM serial output is then read from this file whenever the
console log command is issued.

Implements: blueprint hyper-v-console-log

Co-Authored-By: Adelina Tuvenie <atuvenie@cloudbasesolutions.com>

Change-Id: I7d3132c0f934ac3e8d28315f4da766466612a6c0

Conflicts:
	nova/tests/virt/hyperv/test_hypervapi.py
	nova/tests/virt/hyperv/test_vmops.py
	nova/tests/virt/hyperv/test_vmutils.py
	nova/virt/hyperv/vmops.py

Conflicts:
	nova/tests/virt/hyperv/test_vmops.py
	nova/virt/hyperv/vmops.py
Fixes HyperV VM Console Log

This patch intends to fix some small nits introduced along with
the Nova console log patch.

The size of the console log can get bigger than expected because
of a small nit when checking the existing log file size as well
as a wrong size constant.

The method which gets the serial port pipe at the moment returns
a list which contains at most one element being the actual pipe
path. In order to avoid confusion this should return the pipe path
or None instead of a list.

Change-Id: I5ce9d1bea572f9098971990d011fa97ebf09233e
Closes-Bug: #1363899
Fixes Hyper-V should log a clear error message

When failing to access a remote SMB UNC path, Python raises
   WindowsError: [Error 123] The filename, directory name, or volume
label syntax is incorrect: '\\\\'
This issue happens during resize/cold migration.

This fix ensures that the Nova driver will report a clear error
message.

Change-Id: I735987f3c3f8c16759f6fbbb235a0156df832855
Closes-Bug: #1367786
Fixes differencing VHDX images issue on Hyper-V

When using differencing vhdx images, one will be created pointing
to the base image when a VM is spawned. This image will be created
having the according flavor size.

In this case, due to a Win32 API issue, the image is not generated
properly.

Simply creating the root image with no size specified and resizing
it afterwards fixes the issue.

Change-Id: I7bb46a63d4c2a06ed6f63c839461cbbc1abffa65
Closes-Bug: #1370531

Conflicts:
	nova/tests/virt/hyperv/test_vhdutils.py