Reader performance enhancements

- Use an IOBuffer instead of an array to minimize allocation.
- Add a readbytes! method doesn't have to call read(r, Uint8) repeatedly, which is slow even after the IOBuffer change. This should restore `decompress` performance to what it was before e6ce600caad6eb981465a175d92d8e4ee6e311c5

Fixes simonster/MAT.jl#20