Implement new ui features

Actually build some of the stuff I started designing
I wonder if we might be better off using Capybara here. Capybara has a rack test driver that doesn't require a browser being open, and provides more semantic assertions: https://github.com/jnicklas/capybara#racktest