UrlParser: remove _url_updates
While investigating one issue I got distracted by another issue with the
newly-written `__eq__` method of `UrlParser`, which in turn got me frustrated
with the `_url_updates` attribute.
You see, after parsing a url into a `UrlParser`, we've been keeping the
original url parameters in `_query_dict`, updates to it in `_url_updates`, and
merging them together on `unparse()`. At first glance, this seems like a
reasonable thing to do.
However, this was in reality a pretty weak guarantee. The first time you call
`unparse()`, `_query_dict` was being updated with the contents of
`_url_updates`. Additionally, it is very easy to accidentally modify the
`_query_dict` object (`unparse()` was probably doing it on accident).
A much better way to have a record of the original query string would be to
keep a separate copy of it in a privatish attribute - as with `_orig_url` and
`_orig_netloc`. The good news is that I didn't find any place where we do in
fact need that, so I just left it out. But it would be easy to add in the
future if necessary.
Anyways, now there is just **one** dictionary of query parameters - one place
to look when trying to determine the current state of the parsed url without
turning it back into a string.