BUG: Fix chunked reading of strings longer than BUFFERSIZE

This fix correctly calculates the number of BUFFER_SIZE chunks to read.
This fix takes into account dtype sizes that could be larger
than the BUFFER_SIZE, like a long string.
See #4027
Merge pull request #4033 from juliantaylor/backport-1.8-4027

Backport PR #4027 to 1.8