`takebuf_array` as currently implemented allocates and makes a copy. Defeats the purpose.

```
....
        nbytes = nb_available(io)
        a = Array(Uint8, nbytes)
        data = read!(io, a)
....
```