Allow a callback to be set when calling ::define.

This callback will be called after the object has been created (and
saved in the case of ::create).
Trigger callback after object has been created/saved
Test callbacks are being called
Trigger the callback before we persist to the db
Moved the triggerCallback function
Corrected the triggerCallback function
Cleanup
Further cleanup and changes
Renamed obj to object
Moved out the assignment
Only save again if we actually executed a callback
Improved callback tests
Tweaked a heading in the upgrading guide
Added callback docs
Added a note about db persistence