hetznerctl: Print help if cmdclass is not set.

This currently doesn't matter if you use Python 2.x, because argparse
can't handle optional subparsers. But in preparation for Python 3, this
is very useful.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Fix Python 3 compatibility, closes #9.

Tested with Python 3.4 and we should be backwards-compatible with Python
2.5, though I haven't tested it extensively. We might need to wait until
we have proper tests in order to be truly sure on that.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
robot: Avoid to use module-level loggers.

While this may be working for hetznerctl, it's really not a good idea to
do this, because we might want to set up loggers after we're done with
the imports even for hetznerctl in the future.

The main problem with this is that the default logger setup will be used
when the logging system is set up at some later point. We truly want to
avoid that and in addition, we now have proper logger names for the
robot classes as well.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
hetznerctl: Add command to manage admin accounts.

The functionality for this was already in the API, but we were only
using it for NixOps so far. Now it's available using 'hetznerctl admin'.

Right now there isn't a robot API call for doing this, so we're scraping
the robot web interface. So it might be subject to being broken whenever
Hetzner is changing the Web UI.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>