Refactor lots of JS

@mikeubell if you have unpushed JS stuff, it's probably going to need rebasing on this.

The main goal of this refactor was to

1. dramatically simplify the logic in the Backbone.Router (app.js) so we can iterate on transitions between pages
2. push the checking-for-data-readiness into each individual view, where it can be handled more specifically, and with more Backbone features
3. clean up the naming scheme of the files... so as to differentiate the top-level views (home, about, rules, candidate, contributor) from the sub-views (the other ones in `assets/js/views` with the underscores beginning their names)
4. improve performance by not manipulating the DOM more than necessary

Also this has the potential to break stuff, so I wanted to get it out here asap.