Add some additional checks to copyArea

So bad window positions that are entirely off the grid don't cause
issues.
Don't paint fuzzy icons
Clean up drawBackground

Sync the code with drawWithContext
Move the front buffer to be a ServerPixmap

We're getting ready to implement compositing...
Remove drawToFrontBuffer from wrapWindowChange

It's inappropriate to do this here if we want to composite
windows.
Move wrapWindowChange to ServerWindow

It makes sense to be here for the composite case.
Inline copyContents again
Put backgrounds at the end
Remove the default background color

It's a lie.
Move event sending out of the hot path
Rearrange code slightly
Support background pixmaps and use them for xeyes
Stop xeyes flashing

By only updating if the pointer hasn't moved.
Make getGeometry work with drawables
Add a helper for loading an image as a pixmap

And use it around the house
Reindent class.js
Replace copyArea with getPixmapImage

The new API allows for more powerful manipulations of pixmaps.

No, I'm not going to implement the entire RENDER API. Why do you ask?
Save more memory on the tmp canvas

Browsers special case these so that they destroy all the surface
contents.
Rename drawWithContext to drawTo

This is a much better name.
Move low-level Pixmap details out of ServerPixmap

So we can create a backing pixmap without an XID.