Cross platform WinRM, PowerShell, and Multiple Machines

This change set enables WinRM and PowerShell without the need to execute local PowerShell scripts. This simplifies the provisioning story as well as the remote script execution from command prompt scenarios. It also introduces `vagrant powershell [machine] [-c | s] [command | script file]`, which allows targeted execution of PowerShell scripts on the remote VM.

The branch is based off of two of my previous PRs https://github.com/MSOpenTech/vagrant-azure/pull/40 and https://github.com/MSOpenTech/vagrant-azure/pull/39, so there is a little bit of detritus at the top of the commit list. If those are pulled in, then the changes that would be needed for this specific PR are the commits post Dec 2nd.

## things done
- add .ruby-version to gitignore
- lock gemfile to the minimum supported vagrant release
- patch azure so vhd names do not overlap (see: https://github.com/Azure/azure-sdk-for-ruby/pull/184)
- pin httpclient to the vagrant version for consistency
- add powershell and winrm functionality via a patch on top of the winrm communicator
- removed provisioners in favor of using default vagrant provisioners
- added functionality to discover vm guest os type based on vm image name
- added functionality to discover vm powershell endpoint
- added documentation for multi machine and windows configurations