shell: Don't start plots when they have not been layouted yet.

This allows the callers to be less careful when calling start().
shell, DockerClient: Add reconnect method.
shell: Improve handling of Docker failures.

Instead of showing an additional alert box at the top, we now hide the
main content and show only the error message.  There is a button that
will start docker.socket and then reconnect to Docker.

The failure message is also shown for the container and image details
pages.

Fixes #705