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.)
Why is the naming of accessors inconsistent (in this class and others)? Some use just 'x()', others 'getX()'? We should unify these unless there is a good reason not to.