This is a huge change, which includes some changes to replace code that
originally cloned to reuse allocations instead. The updated
`elastic-array` crate renames its consuming `Vec`-conversion method to
`into_vec`, which means that I can do a simple
`sed -i 's/to_vec/into_vec/'` and then fix the compilation errors.
This commit is probably a minor performance win and definitely a
significant readability win.
* fixed naming of rlp modules
* RlpStream cleanup
* appending short rlp lists (0...55 bytes) is 25% faster
* RlpStream does not use bytes module, nor trait Stream
* removed unused code from rlp module
* compiling ethcore-util with new rlp serialization
* compiling parity with new rlp serialization
* fixed compiling ethcore-light with new rlp serialization
* fixed compiling ethsync with new rlp serialization
* removed redundant comment, print
* removed redundant double-space
* replace usage of WriteBytesExt with ByteOrder
* triedb cleanup
* factor out common portion of trie query
* allocate far fewer times in node decoding
* fix bench compilation
* introduce OwnedNode variant to make iter fast again
* generalize recorder trait to Query
* decode trie outputs cost-free in state
* test for passing closure as query
* small cleanups in trie
* Memory trie skeleton
* decode nodes from RLP
* memorytrie -> memorytriedb
* implement Trie for MemoryTrie
* partially implement insert
* implement trie insertion
* don't load whole trie into memory, lookup across memory and db
* re-implement insertion and lazily load necessary nodes from DB
* node removal w/o fixing
* reduce churn in node storage
* finish remove implementation
* committing the in-memory trie
* reload root node after commit
* generate elastic arrays when converting nodes to rlp
* port triedbmut tests over to memorytriedb, fix a few bugs.
* hash count and dirty flag
* initial attempt for node inspection
* back to skeleton
* inspection framework
* implement insertion
* no panic paths in insert
* implement deletion without fixing
* node fixing
* commit nodes to db
* tracing targets and bugfix
* get tests to pass with a lot of tracing
* set playpen iterations to 10
* remove some tracing statements
* make TrieMut::root take &mut self
* replace triedbmut with memorytriedb
* treat empty insert value as removal
* add test for null insert
* fix some style concerns
* trie: use nodehandle for root_node, minor cleanup