Add KnockoutJS to the project
Add knockout mapping
Rename User -> SiteUser to reduce classname clashes
Add IStateStore interface and in-memory store implementation
Begin to make this JS look more professional and well-structured.
Non-functioning commit

Rename JoinContext -> BaseContext
Added disconnection handling, channel deduping and some re-arch