More careful scanout reference handling

We had a memory leak, as we were referencing the original scanout
buffer for fbScreenInit but never dropping that reference.

We must also pay attention to the fact that the scanout buffer
can change.
Fix BO leak on screen resize

We need to be careful about reference counting here.
Firstly, we must remember that set_scanout_bo takes its own reference.

Secondly, I haven't quite grasped the ModifyPixmapHeader code here,
but it results in a pixmap (not the one modified here) taking the
address of this new scanout bo. Add a reference (via the fb_bo path)
to avoid premature destroy when the X server is shutting down.

Fixes an out-of-memory crash after running a resolution change loop, and
an X crash in the following situation:
 1. Xorg &
 2. mutter &
 3. xrandr -s 1280x720
 4. killall Xorg
CreateBuffer: catch BO allocation failure

Caught these failures a couple of times while chasing BO leaks.