Update Python 3 compatibility after merge with develop

Also, change test script from xcb to xcffib.
We have packages for Saucy and Trusty too
Try to keep tests running

Make sure children of forks exit so we (hopefully) don't get fork bombs.

Use a temporary file for the qtile socket, so if things don't shutdown
nicely in one test, the following tests won't also fail.
Run scripts/window.py with current executable

Closes #453
better warning message for missing dependencies
Don't unmap or withdraw dying windows

.unmanage() here is called when windows are dying, i.e. when we get an
UnmapNotify or DestroyNotify. There is no need to withdraw or unmap these
windows _again_. unmanage() is really an operation that is entirely internal.
Merge branch 'develop' into cffi
remove unused imports
fix typo
Use a consistent font in the default config
remove duplicate code
add support for more colors in the gradient
Make tests more robust (again)

- Kill Xephyr if qtile doesn't start

- Wait for Xephyr to come up or for Xephyr process to terminate
  (possible cause for hang if Xephyr comes up, but with wrong DISPLAY or
  xcb problem)

- Wait for qtile to respond or error out using pipes (possible cause for
  hang if qtile gets caught in a loop before able to respond to status()
  call)
Add short sleep after rotate and resize
Add long timeouts to tests in case things go unforeseeably wrong

Closes #454
Fix handling of messages and the systray

- Properly handles incoming messages (let xcb drop high bit on
  response_type)

- systray parses ClientMessageEvents "properly" (use event.type and
  event.data)

- systray only tries to set icon for `SYSTEM_TRAY_REQUEST_DOCK` messages
  (see
  http://standards.freedesktop.org/systemtray-spec/systemtray-spec-latest.html)
Merge branch 'develop' into cffi

Conflicts:
	libqtile/drawer.py
	libqtile/widget/systray.py
Update .travis.yml with xcffib and cairocffi
Minor division Py 3 fix