Fix logistration Jasmine tests

> For three days and three nights he labored, and lo! A great multitude of tests, which no man could number, appeared before him.

Jasmine tests aside, this includes several bug fixes caught during the course of test writing, wide-ranging general clean-up, and adds [js-url](https://github.com/websanova/js-url), a lightweight URL parser. We're missing test coverage of the form validation logic and the enrollment interface, but I think that's best treated as separate work.

@AlasdairSwan and @dianakhuang, could you help me review this?
We should be including this directly in vendor.js so we have more control over how this dependency is served.  In particular, the test suite should be able to run without making network calls to a CDN.