Closed #25: Each client has its own DOM now. Lots of other fixes, and
some new bugs I'll hopefully be able to sweep up this evening.