hetzner-bootstrap: Add nixos-hardware-scan.

This should now allow us to re-use large parts of the NixOS installer
and we don't have to introduce a table of server models mapping kernel
modules to the corresponding machine.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
deployment: Avoid attr clashes in physical specs.

This now merges attributes from the deployment spec with the attributes
from the resource spec using Nix expressions entirely, using
mergeAttrByFunc. A better approach would be to pretty-print and merge
ourselves, but for now, this should do the job.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
hetzner: Implement hardware detection.

This now uses nixos-hardware-scan which we previously added to the
bootstrapper. We just use the attributes generated from the hardware
expression here, because the config and pkgs attribute sets are already
available from the function arguments of physical specification, so no
need to risk shadowing attributes.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
hetzner.nix: Remove r8169 kernel module.

No longer needed, because we now have proper hardware detection.

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