extract RemoveNamespaces and make RecursivelyRemoveNamespaces use it

A node extracted from a source document will inherit its default namespace and carry it to the target. 

It's sometimes convenient to be able to remove namespaces from the node before copying, e.g. when extracting the `<iq/>` node here

    <body xmlns="http://jabber.org/protocol/httpbind" 
            xmlns:stream="http://etherx.jabber.org/streams" 
            to="127.0.0.1" 
            rid="3" 
            sid="0acad5262d995374">
      <iq id="2" type="get" from="">
        <query xmlns="jabber:iq:auth">
          <username>xyz</username>
        </query>
      </iq>
    </body>

Tests still pass and the RecursivelyRemoveNamespaces test should cover this change.