Only allocate DRI2 pixmaps with GEM

The driver is currently set up (via EXA) to handle all pixmap allocations
itself, and it passes them to GEM.

However, running non-3D apps tends to generate a large number of small
pixmap allocations that we're never going to pass to GL, and it is
expensive and pointless to send them through GEM in this case.

To solve this, fbturbo and my earlier armsoc work for r3p2 strips out EXA,
falling back to X's fast default implementation of pixmap allocation in
the fb layer, then we would migrate such pixmaps to GEM the first time
DRI2 interaction is requested.

However, especially with growing interest in using the CPU cache for a
future performance increase, EXA's PrepareAccess and FinishAccess hooks
are looking more and more useful. In order to use them, we also have to
take over allocation of all pixmaps, but we can do it better: we can
use usage_hint to determine which pixmaps are backing buffers for windows
(hence likely candidates for DRI2 interaction) and which aren't.

The only remaining complication is to detect which pixmap is going to be
used for scanout, this is a bit hacky but it seems to always be the first
pixmap created after ScreenInit.

Performance differences (at 1080p):

                |  BEFORE   BEFORE  |  AFTER   AFTER
                |  RAW X    MUTTER  |  RAW X   MUTTER
----------------+-------------------+----------------
glxgears (fps)  |  148     140      |  148     137
es2gears (fps)  |  313     290      |  313     295
glmark-es2      |  91      68       |  91      73
gtkperf (time)  |  10.7    13.6     |  7.3     9.7