Add gems for UI and JS testing

Add jasmine, jasmine-jquery and sinon for JS testing, capybara and
capybara-webkit for UI testing.
Add Pry-byebug gem for debugging

Also initialized Jasmine JS test runner.
Add Backbone app files and tests

Add backbone app files from old repo. Also add Backbone and
Underscore gems.
Add jasmine-sinon assertion library to lib/javascripts

The absence of this library was causing some of the JS tests
to fail.
Merge Marc's modifications to form app

Adds agreement check for terms and conditions.
Initial work adding UI tests for form
Initial implementation of new Observation controller
Upgrade NoBrainer to fix persistence bug

NoBrainer had a bug whereby primary keys defined on aliased fields
were ignored, effectively completely breaking all persistence
operations. This is now resolved.

All other changes are fixes to exiting models that were required
after issues were uncovered once persistence worked again.
Refactor ObservationForm#save