This is a code cleanup.
Today the RuntimeData objects from TermRuntimeData downward in that hierarchy all carry namespaces, which is the NamespaceBinding from the original XML scope giving rise to the object.
However, that is only used by the InteractiveDebugger when compiling expressions. Hence, should be (and is) carried on DPathCompileInfo.
namespaces should be removed from the TermRuntimeData and all derived classes, and it should be accessed from the DPathCompileInfo objects.
Also, the definition of namespaces is the xml scope from the original XML, but augmented with xsi in case of nillable attributes being added. However, that is only needed for nillable elements, so adding this xsi nillable all the time just creates something that namespace minimizing has to take out later. It should only be added for nillable elements.