Assume binary data when checking whether process's output is available.

The `hReady` function takes account of the encoding of a given handle, and it checks whether one or more _characters_ are available.  Thus, it may fail with a decoding error.

I made the `createp` switch the mode of the handle `cout` to binary.

Since reading/writing functions from the Data.ByteString module originally don't care the encoding, this change only affects `hReady`.