WIP: Much UI awesomeness

Fixes #89, #88, #85, #75, #73, #43, #41, #34.

@pdehaan r?
Yep it should definitely be in a config file. We don't have a mechanism for dealing with that at the moment so it'll have to be hardcoded for a bit longer.