savepoint support

so this works on integrated tests as well.  

i don't know why this wasn't part of zope.sendmail.  The transaction package seems to do all the real work.  i just needed to change the implementer and add a savepoint implementer too.  

While I was at it, I cleaned up all the inline docs and left some debug code (set to off) so the next person has an easier time working with this.  

This pull request replaces an earlier issue https://github.com/repoze/repoze.sendmail/issues/23