Make TreeLink recoverable from SDType

For Persistit, this can be done by setting the appCache of the Exchange to the TreeLink so that store can get it back. The idea is that the TreeLink (Index or Group) will have access to the definition of how items are encoded in the tree.

I am assuming that it is more convenient to have a series of smaller, self-contained refactorings than one giant change that might include code movement and renaming with a bunch of new functionality. But I am happy to keep private branches for longer if that would be superior.