Allow host:port strings to be resolved as URLs

A few changes to work around an OS X bug, allowing strings such as 'example.com:80' (without a scheme) to be resolved as URLs.

An assumption in this pull is that URL schemes cannot (and do not) have periods '.' in them