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.
It might be nice to put some sort of time.sleep() in this loop to avoid spinning the CPU too much. Alternatively, we could just wait for as long as the process is alive, when the travis-ci tests are under high load this sort of stuff fails.