Renamed middleware -> events
Replaced the specific registration functions for the 4 existing event types with a generalized on(event, handler) interface to make this more extensible
EventHandlerRegistrar now supports pass custom args and kwargs to handlers
Update four standard events to pass both the model instance and the working copy to event handlers
Added an emit() method to the Model which allows events plus custom args to be easily emitted to listeners registered with the models registrar.
Made existing standard events use emit()
Added after_init event
Renamed existing standard events to use the ObjC-style naming convention which fits better with the new registration syntax.
Added events around document updates
Tests for did_update event
Added remove events
Added events for applying defaults
Added did_find event
Made Model.on usable as a decorator
Updated docs
Typos
Merge pull request #25 from gamechanger/tl-events

Rewrite of events