hetzner: Soft reboot if in state rescue or up.

Check the current machine state first and only if the machine is in a
state where a soft reset is not possible, trigger a hard reboot using
the Robot.

Of course if hard=True is explicitly passed, we always do a hard reset.

This is especially important when running the VM test, because it will
get into an endless loop because the real Robot isn't available, see
this build for an example:

http://hydra.nixos.org/build/5741216

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