Refactor startup.js

Split into ui.js and startup.js so that startup code is not a
side-effect of testing UI code. Also pulled relevant functions out so
they can be tested in isolation.
Test "Start Over" code

Also set up UI testing