Refactor ClientEvent and chat message handling

This refactor makes conversations contain a list of ConversationEvent
instances rather than just chat messages, which will allow other types
of events like conversation renames to be implemented.
Add OSX notification support
Moved get_conv_name to hangups.utils
Made sender_name a subtitle instead of a prefix
Merge pull request #13 from mtomwing/osx-notifications

Add OSX notification support
Remove unnecessary print call
Fix backslash/quote issues with gbus notifications
Implement sending segmented chat messages
Implement sending eastereggs like /ponies and /pitchforks
Refactor chat message segment support

Make methods supporting segments the default, add a ChatMessageSegment
class, and cleanup.
Show custom conversation names in the UI
Show conversation rename events in UI
Update Conversation._name when renamed

Also use this to make the UI show the updated name in the tab bar.
Fix some ClientStateUpdates being missed

The old code was only using first ClientStateUpdate in the list.
Add support for conv membership change events
Fix inverted formatting values in ChatMessageSegment
Merge pull request #16 from xmikos/master

Fix inverted formatting values in ChatMessageSegment
Refactor Conversation to make state update easier

Conversation is now mainly a wrapper for a ClientConversation instance,
which provides properties like the current participants.
Make syncallnewevents use schema for parsing
Move sync code from Client into ConversationList