Resolved #18. Not caching user data on the app side proved much too slow for constant cursor updates. Might end up caching client-side with users sending data directly peer-to-peer. While I was at it I added a background to user names for their cursor position so it isn't hidden on black backgrounds.