The radix tree is relying on several features that prevent it from using an arbitrary key type:
- The key of type K iis expected to return the correct size via a call to `sizeof(K)`
- It should implement several operators for the `RadixNode::get()` to work, including a cast to size_t so it can be used as an array index.
The radix tree is expected to be used wtih uint256 type keys, for both ProofId and TxId. The uint256 type behaves correctly with sizeof() but still need to be able to perform the arithmetic and cast operations. These operations are delegated to a static method of the radix tree template specialization so it can be implemented as a single method for each type of key. In the case of uint256, `arith_uint256` can be used.