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