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 
Good question,
the `\n\r--` could be stored in a "static" byte array and then arraycopied into the newly allocated array,
or just bundle the mutation like below.
   
    private[this] val needle = {
      val n = new Array[Byte](boundary.length + 4)
      n(0) = '\r'.toByte
      n(1) = '\n'.toByte
      n(2) = '-'.toByte
      n(3) = '-'.toByte
      n
    }