Add end to end tests

These tests aim to test the application functionality by interacting with it in a browser. To avoid external dependencies, they mock the responses from Swift by loading the angular-mocks library and configuring the `$httpBackend` to respond with appropriate JSON blobs when certain URLs are invoked. This is all done without touching the production code.

Right now, the simulator is just two functions that directly program the `$httpBackend`, but my plan is to refactor this into a class that stores the state of Swift explicitly and then computes responses on the fly based on this state.