[test] factor some common block generation code in functional tests
Summary:
This will make it easier to fix the update_block method in a single place in a following commit
These helper methods only differ by a few lines: feature_block has a custom key to sign the coinbase transactions, abc-mempool-coherence-on-activation sets a specific time for the first block. This is solved by adding an extra generate_coinbase_key method and adding an optional coinbase_time argument to next_block
Test Plan: ninja check-functional-extended
Reviewers: #bitcoin_abc, Fabien
Reviewed By: #bitcoin_abc, Fabien
Subscribers: Fabien
Differential Revision: https://reviews.bitcoinabc.org/D18733