Making route tree nodes immutable.
Each RouteTreeNode gets a label so we can track it.
Ensuring pathSegmentChildNodes is never mutated.
Adding basic merging of two immutable RouteTreeNodes.