Added a pointer move handler.

I also fixed the invocations to `XModel::enter_move` and
`XModel::enter_resize` which did not have the pointer location argument.
Wrote the icon drawing procedure.

This required a small change to `XData`, which was a way to figure out
the dimensions of a copied pixmap.
Added a clarification to `ClientModel::remove_client.`

The clarification was about the event that
`ClientModel::remove_client` *does* push out an event (contrary to what
the old documentation said).

A new test was added to confirm that a `ChangeFocus` event is produced
by the `remove_client` method.
Added the ability for `ClientModel` to drop changes.

This probably won't be helpful, and I will probably end up reverting
this commit at some time in the future, but on the off chance it is
helpful, it is here and it works (as confirmed by an extra test case).

It seemed like this might be a solution to a problem, but it probably
won't be.
Added some tests for some `ClientModel` bits which were not covered.

Specifically, `ClientModel::move_window`,
`ClientModel::resize_window`, `ClientModel::focus` and
`ClientModel::unfocus` were not tested previously but now have
corresponding tests (which pass).