Add requirements.txt
Setup testing and installation for asyncio event loop
Asyncio based IPC client/server protocols
Use asyncio/trollius for event loop
Improve tick()'ing

Allows `.tick()` to return values which determine if and when they are
re-ticked:
* Returning `None` will use re-call after `.update_interval`
* Returning a value will re-call after that value
* Returning `False` will not re-call

Also use `.call_soon_threadsafe()` in a couple places.
Add note on asyncio/trollius importing
Drop ._loop() call from call()
Add pypy support!!!!!
Change sleeps to spinlocks so they don't die...
Don't leak additional timeouts on reconfiguring
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
Update install docs to indicate trollius dependency
Remove unused ipc constant BUFSIZE
Lower client timeout from 30s to 5s
Keep qsh alive on restart

When the restart command is given, close the connection right away,
triggering a IPCError so qsh can re-start itself.