Introduce `leaf` so MerkleTree leaf nodes always hold a value of the correct length
In general a merkle tree might not really care about the lengths of its leaf values. However, for correct serialization, our merkle tree must carry leaf values of the length of a sha256 hash - 32 bytes.
Enforce this early so we don't get surprising errors later.
This is stacked on !16 (merged)