JS testing, refactoring (again)

Moving from Jasmine -> Mocha
Functional test in Casper
Removing faux functional tests that were written as unit tests
Updating grunt/npm dependencies accordingly
Refactoring async operations in app
Refactoring branch in app flow based on client support for pushState
Laying groundwork for some other refactoring, notably in Dispatch
Configuring Travis to run Casper tests