feat(testenv): add `mine_block` with custom timestamp and coinbase address
Refactor block mining in `TestEnv` to use `getblocktemplate` RPC properly:
- Add `MineParams` struct to configure mining (empty blocks, custom
timestamp, custom coinbase address)
- Add `mine_block()` method that builds blocks from the template with
proper BIP34 coinbase scriptSig, witness commitment, and merkle root
- Add `min_time_for_next_block()` and `get_block_template()` helpers
- Refactor `mine_empty_block()` to use the new `mine_block()` API
- Include mempool transactions when `empty: false`