URLParse: parse URLs into components and re-create URL string from components

A parser to parse URL string representation into components and re-create the URL string back from components. Modeled after the python urlparse library.

Exports:
* URLComponents: stores parsed url components
* urlparse(url::String): Parse a URL into URLComponents
* urlunparse(u::URLComponents): Join back components to recreate URL string
* urldefrag(url::String): Removes and returns any existing fragment from URL