#84 Groundwork for pooled edges

- No functional change.
- Better encapsulation of TreeNodeRef
- Edges are "pooled" (*)

(*) In a dummy pool that allocates on demand & stores references to freed items but not to allocated items.  Allows re-use of freed items - but we never actually free any yet (because I haven't figured out the conditions under which TreeEdges are safe to free, yet).