Implement Collection->find()->orCreate()
Fix issue #48, import now respects default values
Remove unused "use" declaration that was causing fatal errors
Fix for #49, afterInitialize needed to be moved after schema creation.
Support cork/uncork on Event to stall events
Event is invokable, so can now be passed into register.
Refactor Transaction to be event-driven, now events can be bound to a
transaction.

Added a Transaction->deferEvents() to easily wire up an events object to
be corked during a transaction and uncorked when the transaction
commits/rollsback.
Dropped support for DomainObject::last
Re-arrange method order in DomainObject to make template methods clear
RowMapper::table() is now public
Fix bug where exceptions were swallowed by Transaction
Added connection and transaction helpers to domain object
Added transaction example to README
Collection->one now throws a ConstraintException, fixing #21
Implented Collection->first() and fixed broken last()
Fix strict warnings

Also move static DomainObject::transaction to Pheasant:transaction
Initial implementation of object locking
Add DomainObject->diff and DomainObject->reload
Fix #52, support relationships with null values
Add constraints to ensure DomainObject::save never saves more than 1 row