MERGE FIRST: Buffer Length Fixes

Changes
* Switched from session.coffee to session.js, manually ported over comments.
* Switch to handling all session messages in one handler and not switching it.  We also keep the message buffer around as an array, never emptying it, only 'shift'ing items out of it.


Testing Notes
* This is an interesting one, since we are attempting to fix a bug that we cannot reproduce.  So what we want to do is get this on as many dev servers as possible for as long as possible, and make sure ShareJS works as expected for everything.  Basically full regression of ShareJS, and dev testing for at least a sprint.