Move ValidatedHTTPSConnection into util.http.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
robot: Fix typo in error message of request().

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
hetznerctl: Refactor to use argparse.

Tho optparse module is no longer available in Python 3 and there is only
an argparse module which - fortunately for us - is way more powerful
than the old optparse module, because it supports subcommands properly.

Previously we have implemented the subcommands mechanism by ourselves,
thus resulting into a recursive instance hierarchy rooting from Options.
Now, Options is just a bare-bones class and named SubCommand and we pass
all options except config to the execute() method of the corresponding
subclasses.

Another change that might be backwards-incompatible is that we no longer
use -u and -p directly as global options. The main reason for removing
these is that we now have a 'hetznerctl config' subcommand and the
second reason in particular is that -p previously has clashed with the
'--patience' option 'in hetznerctl rescue'.

Of course, there are a lot of things left to clean up. But right now the
primary goal is to get rid of optparse, which is done by now.

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