Widgets to use cairocffi
Unpack _NET_WM_DESKTOP as an integer

This value should be an integer (I think) and needs to be an integer to
be compared to `len(qtile.groups)` on libqtile/window.py L690.  Doing
this, however, introduces a problem with the Python 3 tests, and so it
always just returns `None`.
Encode the font family as bytes to parse to C
Python 2/3 compatible codebase

Make codebase compatible to run on Python 2 and 3.  Key changes include:

* Using Python 3 style absolute imports

* Use of Python 3 print function

* Proper handling of bytes/string/unicode for Python 2 and 3
  compatibility

* Using `//` for integer division

* Addition of a compatibility layer (libqtile.compat) for things that
  have been moved or renamed between 2 and 3
Run test/scripts/window.py with current executable
Change version argument in bin/qtile
Pickling needs bytes not string
Porting widgets using urllib
Add metaclass