geotrellis.gdal
TODO: benchmark this function, probably in case of reading all bands we can optimize it by reading all the bytes as a single buffer into memory