[Chronik] Store index of plugins and ensure versions match
Summary:
This is an incremental step towards adding a proper plugin interface.
The long-term goal is to have Chronik automatically re-index the transactions of a plugin using the LOKAD ID index, however, we don't need this for an initial release.
Instead, we only add a check that ensures the plugin versions that previously have been used match those that are currently loaded.
We also assign plugin_idx numbers for plugins, this allows us to use integers instead of plugin name strings when indexing transactions, and in the future may allow renaming plugins without doing a reindex.
Depends on D16520.
Test Plan: ninja check-crates && ./test/functional/test_runner.py chronik_plugins_setup
Reviewers: Fabien, #bitcoin_abc
Reviewed By: Fabien, #bitcoin_abc
Differential Revision: https://reviews.bitcoinabc.org/D16522