A NibbleSlicePlan is a blueprint for decoding a nibble slice from a byte slice. The
NibbleSlicePlan is created by parsing a byte slice and can be reused multiple times.
A NodeHandlePlan is a decoding plan for constructing a NodeHandle from an encoded trie
node. This is used as a substructure of NodePlan. See NodePlan for details.
A NodePlan is a blueprint for decoding a node from a byte slice. The NodePlan is created
by parsing an encoded node and can be reused multiple times. This is useful as a Node borrows
from a byte slice and this struct does not.