Removed some seemingly useless code.
Slightly easier to understand structuring of node dispatch macro.
"Cleaned up" the way the tree works.

i.e. made it rather more complicated to understand but easier to
implement.
UDT support is almost ready to be added.

This adds some groundwork to allow UDTs to be added without too much
annoyance (hopefully)...