Implement prototype urwid UI

Supports picking a conversation, and reading/sending messages in a
conversation with a nice scrolling UI.
Refactor code into ConversationWidget
Refactor code into ConversationPickerWidget
Update purplex to improve JS parser error handling
Merge branch 'urwid'
Look up users not in contacts

Since you can be in conversations with users who are not in your
contacts, the initial list of contacts may not include everyone needed
to create the list of conversation names.

fix #4
Fix parsing focus status with unspecified device
Provide the logged-in user's ID to on_connect
Implement tabbed conversation interface
Add screenshot to readme
Unify conversation name formatting
Truncate conversation names in tab bar
Sort conversation list by last modified
Refactor event handling

Create *Event classes and pass instances to on_event.
Don't bother parsing unused first submessage
Use datetime instances for timestamps
Show image URL for messages containing an image
Fix incorrect logger usage, log dates
Refactor _fetch_channel_sid method
Recover from some types of connection errors