! http: introduce a distinction between "?key=" and "?key" in queries, fixes #460

The breaking change is that a parse/render round-trip will reproduce a
trailing '=' if the value is empty as well as no trailing '=' if it was
originally missing.

Also, the default behavior was changed so that '=' is always rendered even
for empty values unless you use the special value `Query.EmptyValue`.