The problem: send a compound of heap bytes and file bytes to the network (e.g. serving a 10GB file with HTTP).

The current solution in spray-can / akka 2.2 uses three rope-like data-structures:
  * ByteString
  * Tcp.WriteCommand
  * HttpData, which is similar to Tcp.WriteCommand but with a nicer API that contains lots of nice operators needed to support various (re-)-packaging use-cases in spray-can

As all of these share a lot of semantics the idea was to unify them as much as possible. This PR unifies HttpData and Tcp.WriteCommand into Bytes. Solution B) from above would unify all three but would need to give up the immutability invariant because of files. I don't think there's a solution that satisfies all of these three properties, so we need to pick two of them:
  * immutability invariant
  * O(1) operations
  * only one rope-like structure