Class PartialMerkleTree

A data structure that contains proofs of block inclusion for one or more transactions, in an efficient manner.

The encoding works as follows: we traverse the tree in depth-first order, storing a bit for each traversed node,
signifying whether the node is the parent of at least one matched leaf txid (or a matched txid itself). In case we
are at the leaf level, or this bit is 0, its merkle node hash is stored, and its children are not explored further.
Otherwise, no hash is stored, but we recurse into both (or the only) child branch. During decoding, the same
depth-first traversal is performed, consuming bits and hashes as they were written during encoding.

The serialization is fixed and provides a hard guarantee about the encoded size,
SIZE <= 10 + ceil(32.25*N) where N represents the number of leaf nodes of the partial tree. N itself
is bounded by: