http: new (un)marshalling infrastructure

This PR provides the first bits of the new akka-http module: the new (un)marshalling infrastructure required by @huntc. It ports everything we have in *spray* into a new an improved streamified (un)marshalling design (incl. multipart support).

/cc @jrudolph 
This raises a general approach question that I always wanted to ask:
So far I usually don't give IllegalStateExceptions a message because ISEs, by their very nature, are meant to support the "debuggerer", not the user. All that is needed for debugging an ISEs is the location of its `throw`.
So, IMHO ISEs should have a helpful comment supporting the one debugging the problem. In many cases though (like here) this comment is not really suitable as a user facing exception message.
Is adding a message like `"Unexpected NotEnoughDataException"` really worth its cost in the string pool?