Support Stream implementation that does not properly implement setEncoding.

When I use carrier with a stream implementation that does not implement setEncoding I get errors like this:

```sh
    var lines = data.split(separator);
                     ^
TypeError: Object hello world
 has no method 'split'
    at Socket.<anonymous> (/Users/chakrit/Documents/carrier/lib/carrier.js:21:22)
    at Socket.EventEmitter.emit (events.js:96:17)
    at TCP.onread (net.js:397:14)
```

This patch makes carrier checks wether incoming data is a `Buffer`, which it will be if the reader stream does not correctly implement setEncoding, and do a `toString(encoding)` to properly convert it to a string.

I think this is a fairly common case (custom Stream w/o setEncoding support.) so I think carrier should handles this.