Sync cursors better using cm.setBookmark

Also only send cursor updates when the client is synchronized.
Don't move cursors together when at same location

Fixes https://github.com/firebase/firepad/issues/4
Split out cursorActivity and focus handlers

Fixes hidden remote cursors being shown after local edits
Only process remote cursor updates when synchronized

Obviates the need for Client.transformCursor
Only reset cursor on insert when it comes from RTCMADAPTER

Fixes #79
Merge pull request #119 from vincentwoo/master

Sync cursors better using cm.setBookmark