Add xcb information to mkconstants

Add cairo-xcb.h functions to constants as
cairocffi.constants._CAIRO_XCB_HEADERS
Add cairocffi.xcb

Create cairocffi.xcb module, which uses xcffib as a library to create
XCBSurface objects
Add xcb tests

Add test cases for the new cairocffi.xcb module. Two test cases are for
creating XCB surfaces on pixmap and window.
Add xcb documentation

Add documentation for cairocffi.xcb module to sphinx docs
Add xcb install option

Installs xcffib for xcb support when running:

    pip install cairocffi[xcb]
Run tests with --boxed

When using XCB extensions you need to query the extension before making
requests to it. (This is referred to in the XCB documentation as the
"extension cache".) Older versions of cairo sometimes don't do this, so the
first test will pass, but the second test will fail because cairo is caching
request ids from the old connection (an example wth an xtrace is [1]). To work
around this, we run each test in a separate process via --boxed, which forces
cairo to ask XCB about the extensions for each test.

[1]: http://paste.ubuntu.com/8320590/
Refactor utils/mkconstants.py
Add XCB-related cairo headers in a separate variable

... as they depend on XCB struct definitions that are in xcffib,
which we want to be an optional dependency.
Merge commit 'refs/pull/39/head' of github.com:SimonSapin/cairocffi

Conflicts:
	cairocffi/__init__.py
	cairocffi/constants.py
	utils/mkconstants.py
Deduplicate the list of names given to dlopen() for cairo.
Test in tox with xcffib.
Mark XCB test as expected failures in cairo version without XCB.
Revert "Run tests with --boxed"

This reverts commit 132098d080f0fb1abe2f3d1e4924edfc46641fed.

--boxed doesn’t seem to be necessary.
Fix code formatting.