Parse complete state updates with single schema

A lot more refactoring is ahead.
Move ClientStateUpdate parsing out of Channel
Refactor ConversationList to use ClientStateUpdate

This will let us move more high-level functionality out of Client.
Add events for watching all conversations
Switch Notifier to a ConversationList event

instead of a Client event.
Add client event for handling syncs
UI listen for chat messages on ConversationList

instead of Client
Remove high-level events from Client

They have been replaced with events on ConversationList and
Conversation.
Remove unused parsing functions

They've been made trivial by the new schemas, so there's no point
keeping them around if they're not being used.
Move user stuff to a new file
Re-add workaround for syncallnewevents duplicates
Parse initial conversation using schema
Parse initial users using schema
Parse self user using schema
Add User class to handle initialization
Refactor and simplify the UserList class

This allows more high-level functionality to be moved out of the Client
class.
Move self entity parsing into UserList
Pass initial data as argument to on_connect event
Clean up client._initialize_chat method
Make parse_chat_message only handle chat messages

rather than all ClientEvents