Replace Array[Byte] and Bytes with scodec-bits' ByteVector

This PR fixes #125. Here are some observations how the conversion to `ByteVector` went:

* The trivial part was the conversion from `Bytes`, it just required to apply this 1-to-1 mapping:

        Bytes.of           -> ByteVector.apply
        Bytes.unsafe       -> ByteVector.view
        Bytes#asByteBuffer -> ByteVector#toByteBuffer

* The conversion of `io`, `nio`, `hash` and `utf8Encode` was straightforward, but please review `io` carefully.

* `utf8Decode` required a small code change, because `ByteVector` has no `reverseIterator`.

* `gzip` was the most complicated for me, review that very carefully.