Added new Windows machine abstraction.

The WindowsMachine class provides a wrapper around the Vagrant builtin Machine class. This was added in order to make unit testing and mocking easier.
ConfigureNetworks cap now uses WindowsMachine
Replaced usages of machine with windows machine in communicator

Added additional comments to WinRMFinder methods and prepended methods with "find_"
WinRMFinder now uses windows machine

Extracted static is_windows? method to WindowsMachine
Added ? to end to is_vmware bool method
Removed inused wql method from communicator
Extracted winrmshell creation to factory class
Moved upload impl to winrmshell and added test
Added reboot check before attempting to provision
Fixed issue 119 on subsequent chef runs

need to reset the symbolic links when the box reboots during the middle of a chef run
Detect pending reboots

reboot_detect.ps1 now checks to see if Windows has a pending reboot scheduled to happen. This allows a provisioner to schedule a reboot only if needed using its builtin mechanisms.
Bump version
Merge branch 'abstract-vagrant-machine' into vagrant-windows-1.3

Conflicts:
	lib/vagrant-windows/communication/winrmcommunicator.rb
	lib/vagrant-windows/communication/winrmfinder.rb
Fixed failing tests from abstract-machine merge
Fixed winrmshell variable name
Changed integration tests from using localhost to more reliable 127.0.0.1
Moved reboot detection to common location

chef-solo is_windows check is now done from windows_machine
Fix defect 129

If there's a scheduled pending reoobt, cancel it. If we don't cancel a pending reboot then the shutdown command will fail.
Add wait for reboot to shell and puppet provisioners
Version bump