[Chronik] Add BlockHash struct wrapping Sha256d to avoid mixing kinds of hashes
Summary: Unlike Sha256d, BlockHash has a well-defined byte-order (little-endian) and hex representation (big-endian), so we can implement TryFrom<&[u8]>, Display and FromStr.
Test Plan: ninja check-bitcoinsuite
Reviewers: Fabien, #bitcoin_abc
Reviewed By: Fabien, #bitcoin_abc
Differential Revision: https://reviews.bitcoinabc.org/D11727