Fix the sixth failing test.

* Listen to 'change' events on a model.
* When a change event happens remove the old facet
  and add the new one.
* This is inefficient but locks the behavior in so
  we can write a more efficient version.
Increase efficiency to facet update.

* No longer removes/adds every time.
* Tests ensure behavior still works as we expect.
The seventh failing test.

* Current implementation does not listen on models as they are added
  to the collection.
* Writing test ensures that our current buggy implementation will
  not be released.
Fix situation where a model would be added to collection but not listened on.