=htc add ';' to to-be-encoded characters in URI.Query rendering

Port of https://github.com/spray/spray/pull/927
=htc add missing alias for `US-ASCII` charset
=htc fix parsing of `Cache-Control` header
=htp fix UnsupportedOperationException in `PathMatchers.valueMap2PathMatcher`
=htc accept comma as cookie separator

Port of https://github.com/spray/spray/pull/870
=htc allow `0` as special value `If-Modified-Since` and similar headers

Port of https://github.com/spray/spray/issues/942
=htc fix error message in response parser

Port of https://github.com/spray/spray/pull/930
=htp fix `UnmarshallerLifting` to not obscure missing Unmarshaller errors with implicit diversions

Unfortunately implicit resolution evaluates type boundaries only quite late in the resolution process which can lead to fake implicit diversions errors. Getting rid of the type boundary here make debugging Unmarshaller type class problem easier.
=htp port `FromEntityUnmarshaller[FormData]` from spray, closes #15966
=htp small simplification in tests
=htp reduce set of not-encoded characters in FormData marshalling

 Port of https://github.com/spray/spray/pull/918