Many changes

* Xpath fixes
* Most changes from passport-saml-too fork (redirect changes not included since they don't have authentication)
* Tolerate empty attribute sets (seen with OneLogin)
* Tolerate alternate namespace prefixes (seen with Okta)
* Add some tests
* Use xmlbuilder library to construct xml
* Upgrade library versions