Removed underscore dependency and preparation for renaming.

I removed underscore as an dependency by adding small dependencies (without further big dependencies just the necessary functionality: union/equal/omit) or own implementations. In most places the ES5 functionality is used and polyfilled if not available by Mozilla's polyfills (see `polyfill.js`). See commit 3b33b74.

`onChange` is still available for backwards compatibility, but if `Cursor.debug` is set to `true` warnings will be emitted, that should help tracking down uses for a flawless transition. The new method `set` is available providing the `onChange` functionality without the warnings (see 6f8e569). This commit also contains preparation for additional functionality like push/merge updates.

At last I rebuild both the example and dist and increased the version number to 0.9.1 (see 0bd60f2), which means if the pull request is excepted a new version needs to be pushed to npm.

Relevant issues: #10 #9 #6