Strict Escaping Mode, Userinfo Support

Intended to supersede #2 and #20 per discussion.
Are we sure that we want URLs with credentials to be non-equal to URLs without credentials?

Also, you don't have a case where just the credentials are different: (eg. `'http://user1:pass1@foo.com/'` vs `'http://user2:pass2@foo.com/'`.