New tree gen stuff

I'm trying a new approach to tree generation and, for the most part,
abandoning the dynamic tree generation.  I'll leave that in for a while,
though.

I committed this last night, but apparently the github client decided
that it wanted me to have not done that instead.  Also it deleted last
night's work and then reverted the git information, but not the code
itself, to a commit from about two months ago, so that was neat.