Test Kitchen Windows Guest Support - Transport Mechanism

:construction: 

This PR is in the works and being created to collect some initial feedback. 

This PR applies @afiune's changes in https://github.com/test-kitchen/test-kitchen/pull/470 to `spec-coverage` branch of test-kitchen/test-kitchen and introduced a new `Transport` class that houses the SSH / WinRM specific logic. It also introduces a `CommonBase` driver which supports multiple transports. 

The idea behind this logic is to enable existing drivers to utilize the windows support in test-kitchen with a very simple change (demonstrated https://github.com/test-kitchen/kitchen-vagrant/pull/110). Of course any driver should add windows support for the logic they already contain.
This blends the concepts of transport (winrm), platform or platform_family (windows), and shell (powershell). It may make sense to choose a default platform and shell based on the transport but it probably better to build commands based on the shell/platform rather than the transport.

You can:
- Use bash/linux without SSH (e.g. using [mosh](http://mosh.mit.edu/#))
- Use powershell/windows with SSH (e.g. with [PowerShell Server](http://www.powershellserver.com/))
- Use bash/windows with cygwin
- In theory, you can use Powershell on Linux. That's the goal of [Pash](http://pash.sourceforge.net/). I'm not sure if this is or will be a part of [PowerShell Desired State Configuration for Linux](http://www.infoq.com/news/2014/05/powershell-dsc-takes-on-linux). 

I'm not saying you should support unusual combos, just that it might be better to have "BusserBash" and "BusserPowershell" than "BusserSSH" and "BusserWinRM".