Add readFully for byte[].

We pay the cost of this check for every iteration of the added `while` loop above it. We could move the implementation below to a private `readInternal` method to fix that.