server: Finish off basic pixmap manip
server: Properly add the event window
server: Set the cursor window to the root window by default
demo: remove some unused demo code
server: Add queryPointer
demo: Add an xeyes emulation

Unshaped, but still...

Now to remind myself why on earth I did this.
server: Add a native copyArea

Because otherwise the client code would be a pain.
demo: Create a backing pixmap for xeyes

To test pixmap implementations.
demo: Add a utility for clearing damage that doesn't leak and use it
demo: Put the blank scleras on the pixmap

And draw the pupils on the window manually.
Move background rendering to the client when it handles exposes

This isn't really something I ever wanted to do, but it's sort of
inevitable because of the differences between the <canvas> and core X
drawing models, even if they're extremely similar.

In the <canvas> model, everything is retained -- we end up computing a lot
of stuff to emulate the terrible front-buffer-only nature of X.

Additionally, we don't have core X primitives -- we use a cheap layer
above <canvas> with a translate and clip. We do not know what drawing
operations will damage which pixels, so we introduced this thing where the
client invalidates a region when they want to draw, and always draw it in
their expose handler, and then explicitly clear damage afterwards for all
the pixels they touched afterwards. This is similar to how GTK+ behaves.

We previously drew a window's background directly onto the front buffer
when we needed to expose a window, but since we drew the background on top
of the whole window and then sent the expose event out to the next turn of
the event loop, this means you get flicker.

Ideally, we'd do accurate damage tracking for every drawing operation, and
only use the background for requested pixels that have been marked dirty
by a recent expose, but the canvas APIs just aren't powerful enough yet.
server: Add Grab/Ungrab modes for crossing events