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

This PR fixes #125. Here are some observations how this 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

* The conversion of `io`, `hash`, `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.