UI redesign

See issue #49. This is what I've been working on for the past few weeks. There are a few parts missing and no doubt there will have to be plenty of adjustments, but this is the bulk of it.

Some of the commits are huge, but it's difficult to carefully split them up with this kind of work.