Extract common cursor functions into a separate file
Add ReactCursor, which leverages react's update addon for working with immutable data

This also introduces react as a project dependency.
Introduce underscore as a project dependency
Add hashString and hashRecord to CursorFunctions
Make ReactCursors that share paths also share onChange handler references
Ignore IDEA project files