WinRM Communicator + Configurable Communicators

This pull request introduces two major new features:

  * **WinRM Communicator** - This is extracted from vagrant-windows and allows communication via WinRM with the machine.

  * **Configurable communicator** - The communicator can be set by doing `config.vm.communicator = "winrm"`. In the future we might automatically do this for guests that are `windows` but for now this works great.

I tested again a Windows box created with packer-windows and it works!

/cc @sneal @pmorton