Ensure buf is bytes in GZip's decode on Python 3
Ensure buf is bytes in GZip's decode on Python 3

On Python 3, `BytesIO` avoids a copy of `buf` if it is already of
`bytes` type. So go ahead and convert it to `bytes` in the `decode`
method. If it is already of `bytes` type, then this is a no-op that
avoids a copy on Python 3.

Unfortunately Python 2 copies the result regardless of what type it is.
So simply make sure to take an `ndarray` view onto the data on Python 2.
This will ensures that `buf` is something that satisfies the buffer
protocol. That way we do not introduce any additional copies beyond what
`BytesIO` will do on Python 2 anyways.

zarr-developers/numcodecs,alimanfoo/numcodecs,alimanfoo/numcodecs