Add a transaction_manager attribute to the mail delivery utility

This PR adds a `transaction_manager` attribute to IMailDelivery, and updates the implementations to rely on the attribute when adding the MailDataManager to the transaction (instead of assuming ThreadTransactionManager is being used).

This makes it easier to use an alternate transaction manager w/ the package.