Make Message a proper IndexedSeq[ByteString] to avoid manual overriding of methods

This pull request makes Message a proper IndexedSeq[ByteString] collection. With this change you don't have to override methods like tail/filter/drop since the Message concrete type will be preserved.

More info: http://www.scala-lang.org/docu/files/collections-api/collections-impl_0.html

Example:

```scala
val m = Message(ByteString("one"), ByteString("two"), ByteString("three"))

scala> m.tail
Message(ByteString(116, 119, 111), ByteString(116, 104, 114, 101, 101))

scala> m.drop(1)
Message(ByteString(116, 119, 111), ByteString(116, 104, 114, 101, 101))

scala> m.filter { _ == ByteString("one") }
Message(ByteString(111, 110, 101))
```