Dashboard: Store machine list permanently.

* The list is managed by cockpitd.
* There is a dedicated websocket to access it.
* The dashboard monitors this connection.

Fixes: #131.
Tests: Use firewall-cmd in cockpit.setup.

Replacing the whole zone definition might lead to problems when the
distribution defaults change.
Tests: Disable NAT during tests.

But enable it during image creation.
Dashboard: Discover machines via OpenSLP.

Fixes: #143.