Adding support to use bitvise ssh server as an alternative ssh provider

on windows.

The use-case in wishing to use bitvise ssh is that cygwin only emulates
a windows shell and bypasses some of the authentication mechanisms [1][2][3].
The impact of this is that certain commands/powershell scripts (such as
installing a windows feature) will fail. Using bitvise ssh server seems
to resolve this issue.

This change implements the host configuration option of communicator
(e.g. host['communicator']) which allows you to conditionally select the
appropriate commands. By implementing it this way it paves the way for
future communication providers such as winrm.

[1] https://cygwin.com/ml/cygwin/2004-09/msg00087.html
[2] https://cygwin.com/ml/cygwin/2006-06/msg00862.html
[3] http://thread.gmane.org/gmane.os.cygwin/128472
I don't think this is really the best way of doing this. Also how are we going to determine the puppet bitness here so that we can take into account 32-bit, 64-bit and 32-bit on 64-bit?