Structural refactor

This includes the angular-cleanup branch because I was unable to test some things without it.

The changes are based off of this style guide: https://github.com/mgechev/angularjs-style-guide

* split controllers.js into multiple files (one per controller)
* put controllers into the 'app' module for now
* moved the websocket code into a service and integrated that into the new controllers
* restructured directories

I wish I could've done these things in separate commits so that they could be cherry picked and evaluated individually, but they all depend on each other to work.

Because of the way git handles file splitting, the diff is very long. If you choose to merge this, you should diff each controller to the original to make sure that I didn't introduce any backdoors, because if I was a bad person this is how I'd do it.
Do you think we could use require.js here in the future? This is getting long.