New TGeoParallelWorld class supporting navigation in a parallel flat node. Currently the parallel world is made by TGeoPhysicalNode objects which has to match paths in the active geometry. Coupling navigation via TGeoManager::SetSetUseParallelWorldNav(true) will prioritize the parallel world objects with respect to the ones in the real geometry.
From Sergey Linev:
1. Processing of <!ENTITY name SYSTEM "file.xml">  declarations in xml files is implemented.
    Main limitation - one should be able to parse data in "file.xml" independent from main file.
    "file.xml" should have completed node (list of nodes). For instance like this:
     <child3>
        <subchild1>subchild1 content</subchild1>
        <subchild2>subchild2 content</subchild2>
        <subchild3>subchild3 content</subchild3>
      </child3>

2. It is allowed to have node content in many places. Like:
     <child3>
        This was the only place for content in previous version
        <subchild1>subchild1 content</subchild1>
        Now one could put content here
        <subchild2>subchild2 content</subchild2>
        Or even here
        <subchild3>subchild3 content</subchild3>
        And of course at the end
      </child3>

3. It is allowed to change/append content to the xml node. Following methods are implemented:
    void TXMLEngine::SetNodeContent(XMLNodePointer_t xmlnode, const char* content, Int_t len = 0);
    void TXMLEngine::AddNodeContent(XMLNodePointer_t xmlnode, const char* content, Int_t len = 0);
    Before only when node was created content can be specified.

4. When navigating via nodes hierarchy, one could get access to nodes content. Following methods
    were modified:
    XMLNodePointer_t TXMLEngine::GetChild(XMLNodePointer_t xmlnode, Bool_t realnode = kTRUE);
    XMLNodePointer_t TXMLEngine::GetNext(XMLNodePointer_t xmlnode, Bool_t realnode = kTRUE);
    void             TXMLEngine::ShiftToNext(XMLNodePointer_t &xmlnode, Bool_t realnode = kTRUE);
    Here one could decide navigate only between real xml nodes (default) or also get access to special nodes.
    New methods allow to identify such special nodes:
    Bool_t  TXMLEngine::IsXmlNode(XMLNodePointer_t xmlnode);
    Bool_t  TXMLEngine::IsContentNode(XMLNodePointer_t xmlnode);
    Bool_t  TXMLEngine::IsCommentNode(XMLNodePointer_t xmlnode);

5. Few small errors were fixed concerning xml version writing/verifying.