Add support for XCB surfaces via xcffib [updated]

Adaptation of #37 addressing the concerns raised there. This adds `cairocffi.xcb` which allows for interfacing with XCB surfaces through cairo with the `cairocffi.xcb.XCBSurface` objects. There are also tests and docs for the new module. I couldn't think of a good way to verify the images that are rendered, but just left them to be if the tests run successfully.

I know the tests won't pass now, as the version of xcffib currently tagged on pypi isn't up to date. Once @tych0 takes care of that, the tests can be re-run and _should_ pass (fingers crossed).

EDIT: all tests should pass now https://travis-ci.org/flacjacket/cairocffi/builds/31476403