+htp #15926 Import HostDirectives from spray
=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
=str #16026 Emit directly in MapAsyncProcessor and MapAsyncUnorderedProcessor
=str #16040 Use scaladsl2 in TCK tests

* found and fixed one issue: onError was invoked twice for the overflow
  error
* and also noticed that we restart the actors, instead of stopping them
  in case of internal error, changed to stopping strategy
+str #15998 Add Source singleton, empty, failed factories
=str #15873 add MergePreferred graph junction
=htp reduce set of not-encoded characters in FormData marshalling

Port of https://github.com/spray/spray/pull/918
+htp #15925 Import HeaderDirectives from spray
+htp #15928 Import MiscDirectives from spray
Merge pull request #16043 from akka/wip-16026-patriknw

=str #16026 Emit directly in MapAsyncProcessor and MapAsyncUnorderedProcessor
Merge pull request #16044 from akka/wip-16040-tck-scaladsl2-patriknw

=str #16040 Use scaladsl2 in TCK tests