Change to state classes rather than adding hidden class

Instead of adding the `hidden` class to show the correct parts of the UI, this branch tracks the state on the container, allowing the UI to be set correctly through CSS.

QA: Try placing units and creating containers and machines and check that the appropriate bits of UI are shown.