defer writing messages and handing commands from the hub to the ui tier until the room in question is ready.

Should* work.  Does stuff like ensures that we don't dup messages that get received between when the client calls logOn and when they actually getRoomInfo (and makes sure that the non-dup messages actually appear correctly in history).

*Should work at least as well as what's in there at the moment.  Though it's less performant because we closure all over the place