Based on https://github.com/tempoxyz/tempo/pull/1059
ref https://github.com/tempoxyz/tempo/issues/1026
Implements logic for paid subblocks, changes in the PR:
- `TempoHaltReason` added which wraps basic Ethereum `HaltReason` and
adds custom variant of `SubblockTxFeePayment` representing a halt due to
subblock transaction failing to pay fees.
- `FeePaymentError` error type is introduced that encapsulates all
failures that might happen during `collectFeePreTx` call
- Instead of a separate `subblock_fee_recipient` field,
`block_env.beneficiary` is now temporarily set to subblock's configured
`fee_recipient`
- Subblock transactions are no longer exempt from basefee checks and are
required to pay fees under regular rules post-Allegretto
- If subblock transaction encounters a failure in `collectFeePreTx`
call, this failure is catched in `catch_error` hook and treated as a
halt with `SubblockTxFeePayment` reason