Use @return [self].
Refactor update channels.

The information on what exactly to send to the EventMachine channel has been
encapsulated in a new UpdateChannel class.  An Updatable mixin takes on much of
ModelObject's channel notifying and registering code.

Specs have been changed to reflect this new API.
Tidy up Updater.