hack: make temporary table so game is viewable
amend CSS, can fit 5-10 games without scrolling
fix row counter
Dodgy attempt in trying set game_id
Have cur_game back to global scope
Removed useless console.logs
Merge remote-tracking branch 'refs/remotes/origin/ctam_set_game_id_for_new_client' into tim-spectator
merge control and remote
single run loop
display game IDs
stepping stone to proper switching

- Game no longer spawns on window load - player must instigate with space
- Need to add clear message, clear up the 'space to play' message
- Player's game is no longer in the centre, so the my-game indicator
  needs work
- Need to sort games in ID order and add a player ID
unique game names
transmit game owner
Destroy games after concluded - horrible bug

After a few games have been destroyed this seems to go haywire
totally fucked lol
auto-respawn, but still horribly broken
const
restore stats
Fix gravity issue

Gravity issue was in the run() loop - the 'last' needs to be per-game.
Significant issues remaining:
- Client doesn't recover from disconnect
- Stats show huge FPS, as if it were animating each destroyed canvas?
- Server getting overwhelmed under trivial conditions, so maybe we are
  uploading a huge number of spurious expired game states?
Added tests stubs (routing still doesnt work)