Refactors server a bit.

Better room cleanup when clients disconnect. Cleaner code. Restores
client reconnect behavior.