Rewrite gen docs to make coroutine the primary decorator.
Update chat demo to be more exemplary.

Use gen.coroutine in auth handler (but not in wait_for_messages
because it makes things less clear and we don't have good cancellation
support).  No more mixin.  Python 3 compatible.