Allow for namespaces declared outside of the root element in single sign out requests

The CAS server I'm using declares the `saml` namespace inside the NameID element:

    <samlp:LogoutRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="foobarbaz" Version="2.0" IssueInstant="2014-10-19T17:13:50Z">
        <saml:NameID xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">@NOT_USED@</saml:NameID>
        <samlp:SessionIndex>ST-foo-bar</samlp:SessionIndex>
    </samlp:LogoutRequest>

Nokogiri only looks for namespace declarations in the root element, then raises an exception when it can't find one that was declared elsewhere. This PR forces Nokogiri to scan the entire xml document for namespaces before accessing any nodes.