Push input-watching down into the Screen.
Have the Screen call back into MainLoop on new input.

This should be much more readily extended by async loops like asyncio and Twisted.
Fix up the Twisted example.
Fix `except ... as`.

This would normally be done with 2to3.  But I'm trying to run the test
suite against 3, and urwid requires 2.6 anyway.
Add AsyncioEventLoop.  Fixes #52.
Split up MainLoop._run, so the loop can be managed outside urwid.
Fix some Python 3 things that work fine in 2.6 anyway.
Fix Screen.parse_input to be easily reused by subclasses.
Put run_wrapper in the base class; make BaseScreen.start() a contextmanager.
Make BaseScreen.start() and stop() idempotent.
MainLoop.start/stop now start/stop the screen, too.
Add Screen.write and Screen.flush.
Add an example that uses asyncio.
Fix a doctest.
Adapt docstrings to changed arguments
Stop screen even without external event loop
Merge pull request #1 from horazont/loop-cleanup-fixes

Adapt docstrings to changed arguments
Fix calling get_input() on the raw screen.

This isn't something urwid ever does by itself, but pudb apparently does
it, and it was completely broken as written.
Merge pull request #67 from eevee/loop-cleanup

Make loop wrapping simpler, and make Screen easier to plug into async loops