Refactor ConversationWidget

Add a custom ListWalker class that acts as a "view" over
Conversation.events, rather than managing a second list of widgets.

Reconnection and message send failures are now shown in the status line
instead of in the list of messages.

Fixes #25