Refactor models and views and use more of Backbone.js

* Add an AppView that sits above the page views and handles the app start-up.
* Move the user model to a pin model.
* Remove the session stuff from the user model and create a new session model
* Move the data handling and display from the old user model to the views.
* Make throbber and error work the same way.
* Remove the base-error and base-model classes as they're no longer needed.
* Make clearer the distinction between persona logout/login and the apps verification and resetUser.
* Use events for the persona callbacks. (Should make reset easier to work with).
* Fix cleaning of the captures dir.

r? @mstriemer and @kumar303 

*Notes on further possible changes*:

If we change the API  to return error data for each then we can probably remove all the forked status-code handling to a central location and just fire events for each case to be handled by the view.

For backbone to update the attrs it can't be an error so the data check needs to be manual. However this would be much better if it was a single fail handler on the model. Having multiple failbacks doesn't really work because if say you're locked out, you don't ideally want to continue you and deal with a 400 error and there's no way from the first failback to prevent the second one from running.