Continuous integration

This pull request completely reworks JS unit testing and makes it massively better.

Summary:

* All unit tests run via the Karma test runner. If you are developing JS on Privly, you should use Karma while you are developing because it is magical. See the `test/README.md` for details.
* Tests will no longer work in the browser by issuing `runTests()` in the console.
* Tests should be written using [Jasmine 2](http://jasmine.github.io/2.0/introduction.html)
* This is hooked into TravisCI and Sauce labs. You should be able to submit pull requests without needing to figure out this integration, but if you want to run TravisCI+Sauce you should talk to me because it is easy to get the config wrong. TravisCI uses a secure token system in which it encrypts the Sauce access key. It is very easy to encrypt this access token with the wrong key if you have a more complex Git environment.
* As soon as this is merged I will be working on testing the applications as a whole using Selenium Web Driver. This will allow for developers to unit test portions of their JS with Jasmine tests running on Karma and test their application as a whole using Selenium.