URL validator + parser. Validate a URL and break it into protocol, host, path, query parameters and fragment.