Latest version of Java HTTP model

This is the follow up to spray/akka#1.

This PR contains the commits from #15391 because it builds on them. Please just ignore those for now.

/cc @sirthias 
these `private[http]` will be public for Java, so they should have the INTERNAL API marker or be moved elsewhere
(or is it it a trick?)