Fix event listener leak

A new item update listener was being registered every time
the state for the root AppView component was updated.

 * Fix by only registering a new listener if the old/new
   stores are different.

 * Improve debugging of event listener leaks by reducing the
   default max listener limit to 10 and adding a console trace.

 * Make it easier to avoid leaks by allowing EventStream listeners
   to be associated with a context object. Only one listener may
   be associated with a given context object at any time.

   There is also a method to remove the listener associated with
   a given context object.

   This makes it easier to implement the pattern of switching
   the source stream for a listener or the listener for a source
   stream.
Fix use of React CSSTransitionGroup

In React v0.12 CSSTransitionGroup is a component, not a factory.
Add a utility function which creates a factory for it.
Remove reactutil.mapToComponentArray()

This does not work in React 0.12 since props.key was removed
and modifying the 'key' property of a created element fails
since elements are immutable once created.