ssh_util: Refactor SSH stuff into a single class.

This class currently is pretty basic and has lots of room for
improvement. And not everything already uses the class for its entireity
and some code still gets the master process manually and executes the
ssh command (or wrapper) with the corresponding flags by itself.

One of the main reasons for refactoring the SSH handling is to get rid
of the chroot wrappers in the hetzner target and to make everything
consistent.

So in the end we'd have commands/flags to for the rescue mode to either
execute something from outside the chroot and within the chroot, while
by default everything is executed inside the chroot so everything works
as expected especially when working with large deployments.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
logger: Fix coloring on first machine deployment.

When the MachineState was initalized, it got a machine logger instance
based on the value of the current self.index. Unfortunately for new
machines, the index is assigned after __init__ and the first log line,
so we're missing the index in the logger and thus coloring.

This is now temporarily fixed at the place where the machine gets
assigned an index. But optimally would be if we would have some way to
do coloring solely based on the machines name and without getting
duplicate colors on <= 7 machines.

So, until we're able to figure this out, we have a new method called
register_index(), which is there so it's literally crying to be factored
out :-)

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