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.