Patch changeListener to better sync self.current.

When a cursor updates, any cursors not in the keypath to the updated cursor will become stale. Patch changeListener to better sync self.current when a stale cursor updates, and when a un-stale cursor updates.
Revise tests
Don't emit swap or change events when updating structure doesn't actually change anything. In a similar manner, don't update history.
Update README.md to note to user that Structure will not emit events or modify history (if any) when underlying Immutable collection isn't changed.
Merge pull request #17 from Dashed/dont-emit-on-no-change

Changes events to not be triggered when structure doesn't change.
Merge pull request #13 from Dashed/patch-changeListener

Patches changeListener to better sync self.current
Fixes tests to work with earlier 3.x versions of Immutable.
Removes long-space and replace with proper space char.
Pass in keyPath for swap and next-animation-frame events
Adds tests for passing keyPath on swap event.
Restructures and reorders structure tests