Puppet and Shell provision for Hyper-V Windows VM

@mitchellh 

This Pull request contains.
Features.
1 Puppet Provision for Windows VM
2 Shell provision for Windows VM
3 New Rdp command to connect to a Windows VM

Fixes.
1 While checking the synced folders implementation for linux guest on Hyper-V I noticed that there was no ACL set for the shared folders. I added an extra piece of code to the set_share.ps1, along with this I cache the implementer instance so that user had to input the SMB credentials only once. If not SMB credentials will be prompted once on prepare and on enable.
2 I created separate methods for each of the driver action in the driver class.
3 A check in wait for ip address action to see if the PowerShell call returned a valid IP