Add a generic CollectionView for handling live-updating collections.

This adds a utility view for rendering collections of things. To use this, one
extends this view with a new one that defines the itemViewType attribute. Items
can be added to the collection before or after the view is rendered, and the
results in the DOM will always match the current state of the collection.

Testing done: Ran js-tests, used this in my post-commit view.
Reviewed at http://reviews.reviewboard.org/r/4269/