Fix prompt cursor blinking
bar shouldn't listen for any hooks

Since the bar doesn't actually do any drawing itself, there is no need for it
to listen to any hooks. Any widgets that need to listen to these hooks should
be explicit about it and do it themselves.
Always use the bar's draw queue

There was no way for users to set this, and it is the Right Thing to do anyway.
Use proxy calls for the event loop

When cairo (or pango, or whatever) draws stuff to an XCB surface, those events
go in xcb's outbound queue. These events are not actually sent to the server
until the connection is flushed (xcb does this as a performance optimization).
Previously, we flushed after each event-loop event (including our own
callbacks), but now we flush only after each XCB event (asyncio's run_forever()
vs. gobject's iteration()).

Thus, if we generate some drawing events (in particular, if widgets generate
drawing events), those events must be flushed to the server in order for people
to actually see them. This commit adds proxies for the event loop which wrap
the callbacks so that after they're done, the xcb queue is flushed to the
server.

This commit also removes Qtile._exit, which is no longer needed as we can just
use asyncio's stop() directly.
Remove mpris widget update timer

This isn't necessary and causes a crash with the new event loop structure.
daemonize spawned processes correctly