Ansible ssh alt

This is a PR for an alternate ssh connection_plugin following a discussion on devel ML :
 * https://groups.google.com/forum/#!topic/ansible-devel/vCEZOmcLipU
 * https://groups.google.com/forum/#!topic/ansible-devel/67ltJ2OGlLc

Use with -c ssh_alt

The objective is to minimize the number of ssh roundtrips for each command/module execution.
Currently when sudo'ing we often have up to 5 ssh round trips :
 * make tmp dir
 * change rights
 * move module code
 * execute module
 * remove tmp dir

The new plugin brings this down to one round-trip in most cases when a tmp directory is not necessary (by piping the module source code directly over ssh to the extracted module shebang).

This implementation needs to be tested but is believed to hopefully handle most of the cases.

It should currently work in these cases :
 * when -k and -K are needed
 * old style & new style modules
 * specific modules needing tmp dir (for example copy)
 * raise an error when remote host is not reachable

Implementation details :
 * during the early decision to create a tmp dir or not, a hardcoded list of module needing a tmp path: 'assemble', 'copy', 'script', 'template', 'unarchive'. This list can easily be removed by adding NEEDS_TMPPATH = True in the respective modules. I did not do it to minimize the footprint of the PR and draw attention to these early/late scenarios.
 * I could not find a way to protect 3rd party module that NEED the tmp path but that do not declare it stating NEEDS_TMPPATH = True. Maybe we could add a deprecation warning and make it compulsory to declare NEEDS_TMPPATH.
 * I used the already existing convention of testing tmp.find("tmp") != -1 to know whether the tmp path has been created or not (found this in many places around the codebase). Note that there is probably a bug when C.DEFAULT_REMOTE_TMP is customized without "tmp" in it. I did not try to fix this bug as I considered that it was not related.
 * I observed in the codebase that some helpers in the python api related to tmp dir operations could help. some modules like copy are not very clear related to their handling of tmp path and were maybe written before persist_files ever existed.