Implements "nested table" views of point feature datasets.
A NestedTable is initialized with a TableConfig.
A NestedTable Table is created after the Tables have been joined, and the leaves identified.
It is a single chain of Table objects from child to parent. Highest parent is root. Lowest child is leaf
A nested table starts with a leaf table (no children), plus all of its parents.
There is a "join" for each child and parent.
Assumes that we have Tables that can be iterated over with a StructureDataIterator.
A parent-child join assumes that for each row of the parent, a StructureDataIterator exists that
iterates over the rows of the child table for that parent.
Nested Tables must be put in canonical form, based on feature type:
- point : obsTable
- station : stnTable -> obsTable
- traj : trajTable -> obsTable
- profile : profileTable -> obsTable
- stationProfile : stnTable -> profileTable -> obsTable
- section : sectionTable -> trajTable -> obsTable