[Chronik] Add TokenWriter and TokenReader
Summary:
Parses, colors, verifies and indexes ALP/SLP tokens in a batch (i.e. block).
This doesn't change the behavior of Chronik yet, which will come in a future diff.
Details about the indexing strategy and tradeoffs can be found in the doc comment of TokenWriter.
Test Plan: cargo test -p chronik-db
Reviewers: Fabien, #bitcoin_abc
Reviewed By: Fabien, #bitcoin_abc
Differential Revision: https://reviews.bitcoinabc.org/D15048