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.)
As Johannes already mentioned there is a (significant) cost to completely unifying the accessor style on the Java side. In order to avoid writing everything twice we have three fundamental options:

1. Have the Java API extend the Scala API.
2. Have the Scala API extend Java API.
3. Have both extend some kind of inner implementation.

None of these alternatives is perfect as each one comes with its own trade-offs. We (as a team) decided to go for option 2, which has the benefit of reducing code duplication as much as possible and allows for relatively good interoperability between the Java and Scala APIs.
Drawbacks are (some) namespace pollution on the Scala side (since you "see" the Java methods) and naming collisions like the one you see here.
Ideally `getSliceFirst` would be called `sliceFirst`, but on the Scala side this method returns `scala.Option` while here it needs to return `akka.japi.Option`, hence the name `getSliceFirst`.