Rewrite UI using ReactJS + RequireJS

React JS is a nice replacement for Backbone.View, and this pull request does that replacement. This also splits the UI in many small JS files that use Require JS to manage dependencies.

To work on the UI locally, point to the uncompiled `main.js` by editing `index.html` and removing `dist/` from the path:

    <script data-main='js/dist/main.js' src='js/require-2.1.9.js'></script>

becomes:

    <script data-main='js/main.js' src='js/require-2.1.9.js'></script>

To build the UI, run `./bin/build` in the `js` directory and check in the compiled `dist/main.js`.