Java Http Model

Follow-up to typesafehub/akka-streams#66 based on Mathias' latest version. Alone because of the sheer amount of classes I'm pretty sure there are some rough edges left. So, please be rigorous. 

(It seems this PR has to live in the spray/akka repository as long as its base is also living there.)
It follows a convention we decided on some time ago: in the Scala version identifiers coming from the HTTP spec are named exactly like they occur in the spec. This didn't work for Java, so the rule is to keep all identifiers as similar to their Scala counterparts by replacing disallowed characters in Java identifier by underscores.