server: Remove the debug canvas
server: Fix a silly typo causing copyArea to not work properly
server: Remove a "should not happen"
server: Move the drawing model towards what X actually provides

X does not track outstanding damages across windows; it simply sends expose
events and lets X clients draw, clipped to their extents, siblings, and
children. Move towards this sort of model so we can eliminate rendering
bugs and similar issues.

Additionally, I've been told that the X11 protocol specification's usage
of the word "damage" is incorrect, and that a window is damaged when a
client draws to it; the "damaged region" simply being the region that
contains the pixels the drawing operation touched. Exposures are separate,
and are regions that are generated by the server as a part of inter-window
interactions. Correct this terminology.

For now, don't modify the clients. We'll be removing the ClearDamage request
soon.
server: Remove "ClearDamage" request

It now does nothing under the new drawing model.
wm: Only re-set frame shapes on resize

This is a quick performance improvement.
server: Remove an unused variable
server: Use try/catch for sending errors to clients

This way we don't need to exit out early ourselves.
Revert "Remove background color entirely"

With our new drawing model now matching X's more closely, we
can reintroduce background color on windows. We'll still have
flashing colors, but this is an X bug, not our bug.

This reverts commit c0a8475501f0592177c7cb089ad75a7b7d58680e.