Add SAVEPOINT (Fixes #56)

We needed this so I hacked it in and added a test case. I ran into trouble getting Mockery to correctly mock the object, so I had to change the tests up a bit.
I assumed that `wrap` did some first-letter-capitalization (so that `trigger` and `wrap` could use the same event name), but it appears that it doesn't. The convention seems to be that, when wrapping an event, the name is capitalized.

https://github.com/lox/pheasant/blob/e0f78a1e21e171921ac3d0b9ca1619316eec354b/lib/Pheasant/DomainObject.php#L147
and
https://github.com/lox/pheasant/blob/e4a90b572dc66d0d9790be2b1a57f83eef686a5a/lib/Pheasant/DomainObject.php#L91