Namespaced global vars
Refactored var names to be more consistent, clear
More variable renaming for consistency, clarity
Implemented function to reset editor to beginning state
Added documentation comments
Test refresh now uses fewer setTimeouts

Previously, test refreshes would create a setTimeout for each keydown. Now, test
refreshing will only create a single setTimeout and use clearTimeout to invalidate
it on each keydown. This gives the same keydown-inertia effect but is more
efficient.
Refactored tests to only validate after editor change

Previously, tests re-running was triggered by editor changes; now, they are only
re-run when the contents of the test suite are refreshed.
Documentation, implemented garbage collection on rooms
Refactored random function generator to be more efficient
Refactored room, user models to revealing module pattern
Renamed files for consistency; fixed room ID regression