only enforce host presence for HTTP / HTTPS

Requests supports adding other protocols by mounting an adapter for them.  For
protocols that don't require a host entry, this handling is overzealous, and
prevents useful URLs from making it through.  This change only enforces this
for the http and https protocol schemes, and adjusts the rest of the URL
handling to be more friendly to non-present network locations.

NOTE:  This is to be compatible with the previous work I did to add a file URL scheme to Requests (which is now available here: https://github.com/jvantuyl/requests-file).