Use a full application window

This pull request includes my other two branches that I've done pull requests for as it touches too many files to merge cleanly independently. Shout if you need this redone.