Implement event-reading using multimethod

Implement event-reading using multimethod, to allow manually written
events.
Implement ClientMessage event

Manually implement ClientMessage event since it requires the use of
union type.
Update todo in README

With the implementation of ClientMessage event, the core protocol
(xproto) is now fully supported.
Regenerate xproto

The core protocol (xproto) is now fully implemented.
Rewrite error-reading using multimethod

Rewrite error-reading using multimethod, so that manually written errors
would be possible.
Regenerate xproto