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
Merge pull request #13 from Dashed/patch-changeListener

Patches changeListener to better sync self.current