* Add IsEmpty and HTTP/HTTPS constructors, simplify tests.
* Simplify remaining construction of URLs in tests with struct initialization.
* Reverse `nonEmpty` since most cases are now non-empty.
* Update initial tests. Also fix a bug in URL.String() and update test.
* Add support for a structured URL type.
This type can be used to accept `url: http://asdf.com` where in code we
get a `url.URL` to interact with.
* Propagate errors parsing, cast pointer instead of copying.