tree refactoring

this version currently does not work as expected due to some interesting behavior in codec where you are punished for correctly using generics. Maps in the form of Map<String, MyData<?>> throw all kinds of NPEs. This is a bug in codec that will have to be fixed.

that aside, this pr tends to focus on removing/ exposing redundant layers of abstraction (6+ layers of iterators etc.). Notably TreeNodeList, ReadPageDB (as an object), and DataTreeNodeActor have been removed entirely, and a few more have been cut from the read-only query system to help get at the crazy number of iterators (Range, CloseableIterator, etc).