Fix crash on missing host_key

Change-Id: If5dfbfd1a931d35755eeb2a1781fad46c56a173b
Closes-Bug: #1289610
Implement CLI Exception Handling and Logging

Intercept all exceptions and output them in a
friendly manner. Allow advanced debugging using a
--debug flag.

Also implements verbose and quiet mode.

Change-Id: I53a51fc751d1a4db2c7a2a4d23858bedd03dd165
Merge "Implement CLI Exception Handling and Logging"
Templating: initial implementation

This only replaces the current output
implementation with a Jinja version.

No support for custom templates yet (although
someone could now modify the default template).

Change-Id: Ief9ba5c5ce374d2223ae4f01440a38d6841d3cac
Implement an SSH module

A way to connect to remote machines and execute commands.
Supports proxying through a middle-machine to execute
commands on a target host.

To use:
    from satori import ssh
    client = ssh.connect("123.456.789.0")
    output = client.remote_execute('uname -v')
    # {'stdout': '#75-Ubuntu SMP Tue Jun 18 17:59:38 UTC 2013'}

To use with proxy:
    proxy = ssh.connect("10.11.12.99")
    client = ssh.connect("123.456.789.0", proxy=proxy)
    output = client.remote_execute('uname -v')
    # {'stdout': '#75-Ubuntu SMP Tue Jun 18 17:59:38 UTC 2013'}

Includes tests.

Change-Id: I38abbc8910620f7055c790995ad5e1e5e8934337
Implements: blueprint ssh-module