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 think I used that even name for the sake of being backwards compatible if someone had bound to it. But I am inclined to think that the chances are slim.

Thoughts on changing the name to just `transaction`. Which would give us `beforeTransaction` and `afterTransaction`?