Implementation of a C++ URL class (RFC 3986)