fix tests and test requirements

Changes to python-whois require updates to dns unittests.

Updates pep8 requirement from jcrocholl/pep8 Issue#240:
    Fix was merged into pep8 1.5.7
Updates hacking requirement to fix VersionConflict

Change-Id: I44deeb5f7b164f6a40d4eabc68630f373ea2167a
Implements: blueprint dependency-fix
Closes-Bug: #1347093
Update requirements file

* Add the argparse module
Change-Id: Ib2beef9dc1e9c76e26b4b06b43693772f6b62af3
Merge "Update requirements file"
Adds Windows Support to satori discovery

This change adds the capability to satori to do data plane
discovery on Windows devices. For that, a class has been
added that mirrors the functionality of satori/ssh.py and
utilizes a "3rd party" script (satori/contrib/psexec.py)
which is called via subprocess.Popen(). Further to that, an
SSH tunneling class has been put in place that uses paramiko
to establish a tunnel (similar to running ssh -L from a shell).
requirements.txt has been extended to include impacket which
satori/contrib/psexec.py imports.

Move support for PoSH-Ohai into its own provider module.
Raise UnsupportedPlatform exceptions in ohai_solo.py
when the client is non-linux, and raise the same
exception in posh_ohai.py when the client is non-windows.

Co-Authored-By: Nico Engelen <engelen.nico@googlemail.com>
Co-Authored-By: Samuel Stavinoha <samuel.stavinoha@rackspace.com>
Change-Id: I7a94eea9446bc7f57843407fb98880222f7af6af
Implements: blueprint windows-support
Move serviceinstall to satori

This change is to remove the dependency on a custom version of impacket.
This dependency was necessary because the serviceinstall example inside
impacket did not support custom service/executable names but always
generated a random name for both and a change of the example was very
unlikely to be merged upstream.

Further to that, two minor bugs were fixed
 - satori.smb.SMBClient.create_tunnel() was calling
   satori.tunnel.connect() which has been removed, this has been
   changed to now use the constructor: satori.tunnel.Tunnel()
 - satori.tunnel.Tunnel.serve_forever() was calling self.start
   instead of self.tunnel_thread.start()

Minor style fixes have also been made. Further to that, the
serviceinstall example is not provided under an Apache2 license and
therefore H102 needs to be ignored by tox.

Change-Id: I04f48bf08f9361833cb607faa74ece26a48ea02d