Parses an URL into the following parts: scheme, authority, path, query and fragment identifier.
The parsing is designed to be robust in the sense that it will never fail, even when an invalid
URL is given. The parser will simply look for the most important delimiter characters. Basically
it does the same as what would be achieved using the following regular expression (from RFC 2396):
^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?
12 3 4 5 6 7 8 9
but without actually using the regular expression.
The result is returned as a string array, use the constants SCHEME, AUTHORITY, PATH,
QUERY and FRAGMENT_IDENTIFIER to access the different parts.
If a part is missing, its corresponding entry in the array will be null, except for the
path, which will never be null.