Maybe better testing...

* Biggest thing is moving to `multiprocessing` (to launch the qtile loop) and `subprocess` (to launch Xephyr and windows spawned in qtile). This allows better monitoring, polling, and killing methods that aren't as hard to manage as `os.fork()`/`pipe()`/_et al._

* Shift around function calls so starting/stopping Xephyr is done with nose setup/teardown functions, and starting/stopping qtile is part of the test function.

* Use a temporary folder for the socket file, since the IPC server creates the socket, we shouldn't be trying to connect to it before this has happened.

* Allow custom logging location in config file or launching with `init_log`

* Print log output in tests. This currently relies on nose's stdout capturing plugin. We could potentially expand this by writing a custom plugin to print the log output.

I'd originally had this against cffi, but that still seems plagued by other problems (though this did seem to cut out a lot of the test suite related errors). However this cleanly merges onto cffi.
Ah, yep, you're totally right. `errpipe`'s poll should be just fine there.