Implement transaction options API
This adds begin_with methods for creating transactions with additional options. The exact options object varies depending upon the backend. For MS-SQL and AnyDatabase the options are currently just () although this could be extended, with each backend transaction option struct potentially supporting From<AnyTransactionOptions>.
MySQL and Postgres both support the same ANSI isolation levels, although they are currently separate enums which could potentially be combined.
As much as possible, the tests try to verify that the correct transaction options have been applied.
Related to #481, #853, #851
This looks really awesome! As #481 indicates, there is currently no way to do a BEGIN IMMEDIATE TRANSACTION for SQLite databases in SQLx (if I understand things correctly), and we need that functionality. I hope this can be merged soon!
Thanks for the review @abonander, it sounds like this might need to wait for another minor release? I see there's another PR applying the feedback.
Closing in favor of #1924