This lets us rely on "not present" for "not initialized", as opposed to having to check not present OR not empty, and helps prevent more bugs.
Catching up is now an option when creating the client.
Use a fixed-size queue instead of a callback to deal with updates. Port the message box and entity cache from grammers to start off with a clean design. Temporarily get rid of other cruft such as automatic pings or old catch up implementation.