storage/log: Detach log pruning from TransactionManager
A follow-up of !7424 (merged)
Before the above MR, the TransactionManager prunes log entries before applying new ones or admitting new transactions. We did that way because a transaction might depend on a prior entry for verification. Afterward, we extracted log management out of TransactionManager. Conflict checking is still in TransactionManager, but the keep-around log entries are in the memory now. Consumer position tracking is moved to the new log package.
It means, the transaction manager doesn't need to be concerned with pruning obsoleted log entries. The log manager is capable of pruning log entries itself. Apparently, log entry pruning is now a part of processing hot loop. Moving this task to a concurrent goroutine will reduce the head-of-line blocking a bit.
This issue tracks moving log entry pruning out of TransactionManager as well as making it concurrent.