Implement SQLiteDatabase::TxnBegin, TxnCommit, and TxnAbort
Implement SQLiteDatabase::TxnBegin, TxnCommit, and TxnAbort

Summary:
This is a backport of [[https://github.com/bitcoin/bitcoin/pull/19077 | core#19077]] [14/26]
https://github.com/bitcoin/bitcoin/pull/19077/commits/010e3659069e6f97dd7b24483f50ed71042b84b0

Depends on D10561

Test Plan:
With clang-tidy:
`ninja`

Reviewers: #bitcoin_abc, deadalnix

Reviewed By: #bitcoin_abc, deadalnix

Differential Revision: https://reviews.bitcoinabc.org/D10562

Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc