RFC 3986 compliant url parsing library