Using StaticTuple.intern() and recursive structures.
Brings peak bzr.dev memory down to: 102920KB, still with a 6.0MB intern dict.
This is down from 121052KB with bzr.dev and roughly 107380KB with the Key version.
The big win is that all of the btree data structures can be StaticTuple
because we know we are just referencing either strings or tuples of strings,
or tuples of mixed tuples and strings, but still all very static data.