move common code into  common module and use ssh-config command to discover hostname for winrm

Hi there,

I was doing some more testing tonight and noticed that all fresh kitchen converges were failing because the hostname was always set to 127.0.0.1. For some reason I missed this the other night. Likely because I was fiddling alot with my config to get everything working. Not sure if if this is intentional and working in your environment. I use Hyper-V but I'm not sure why this would work on vbox. 

Anyways, I have noticed that Vagrant's ssh-config command works even when ssh is not configured at least to get the host name passed on from the provider. So it seems that could be used for winrm as well.

While I was at it and instead of copying the method that parses the ssh-config output I extracted all the common protected methods into their own module and include them in the individual driver classes. I'm still rather new to the Ruby language (long time C# dev and java before that) but I *think* that is popper form.