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 
why not put all of this in `HttpCharset`?