Proof generation and verification, mainly.
Locating content was a linear scan, making a single proof O(n) and a full set
O(n squared). WithLeafIndex, GetMerklePathByIndex and the AppendMerklePath forms
take that to a map probe, a direct index, and zero allocations respectively.
VerifyProof checks a proof against a root without the tree, which is what a light
client actually needs and what the package could not previously do.
WithParallelism spreads content hashing across goroutines, off by default because
it calls Content.CalculateHash concurrently.
VerifyTree and the binary decoder allocate substantially less.
The RFC 6962 construction is now checked against the Certificate Transparency
reference vectors, and the default construction against other implementations of
the same folklore. Both live in nested modules, so merkletree still has no
dependencies.
All additive; no existing API changed.