hetzner: Don't use systemctl to reboot in RESCUE.

This now more or less duplicates the functionality of
MachineState.reboot(), but unless we have a more flexible implementation
of the latter, let's keep it that way and factor out later.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
logger: Fix confirm() and backends using it.

This was broken while refactoring logging in commit
1aa027240c4df89dd4dc214f9e40fe9bb2514210.

This fix now duplicates code, because the context managers on the used
locks cannot be nested and will cause an infinite loop waiting for the
release of each other. Of course this is only temporary until we're
going to fully refactor the logging code.

Another thing that is now correctly incorporated is auto_response, which
before the refactor was part of Deployment, but now is part of Logger
and can be set by set_autoresponse(). References changed accordingly, of
course.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
hetzner: Access own subnet through the gateway.

At Hetzner, you always need the gateway in order to access the own
subnet, so we're changing the route for our own subnet to use the
gateway here.

This also calculates subnets on our part now, because in the long term
we want to get rid of acquiring network information from the rescue
system and use the Robot's API to check IP addresses and subnets.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
hetzner: Configure IPv6 addresses by default.

Unfartunately this only applies for the first (eth0) interface unless we
have found a better and more flexible way of assigning the corresponding
subnets.

The way this is done is by appending "ip -6" commands to
networking.localCommands, which certainly isn't nice either, so it might
be a good idea to have NixOS options for configuring static IPv6
addresses and subnets.

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