Updated the events header.

This fix makes the events header fit in with the new way that things are
organized.
Finished key handling in the event dispatcher.
Moved the implementation of ClientModel out.

This means that the client model header is no longer huge. There were
some changes to the Makefile to make it possible to build the tests.
Fixed a few syntactical and naming errors.
Added a model for the user interface.

This contains the information necessary to keep track of the additional
interface which SmallWM provides. There is also a new suite of tests to
confirm that the code for XModel works.
Removed some old-style casts laying around.