Added events.

I would of done this in the performValidation method but doesn't always
get called (Having looked at saving method)

Passing the model allows the event handler to know what class it is and
what is dirty on the model, no other information I think is necessary.

I was going to just add a constructor and assign
Model::getEventDispatcher() locally to the instance but the Facade is
fine and testable.