Introducing Jasmine testing.

This has already fixed several bugs, including:

* out events not being fired when removed
* one instance of a Model that is part of two collections
  didn't have all of the events fire for all collections