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 
What was the reason to write all those classes in Java and not in scala?