This new TrieCollection interface allows storing and fetching multiple unrelated
tries, such as in the case of normal Ethereum blockchain storage, in the same
database. For the situation where multiple tries form a directed graph, it is
recommended to directly use the raw interface to avoid RC overhead.
The interface also doesn't contain locking, but can be easily extended. For example,
one might want to open and apply multiple storage tries while at the same time, deal
with one state trie. In this case, one can use a locking variant of the DatabaseMut
trait and create one database instance for state trie, and another for all storage