RF: use `readinto` to read array data if possible

Following suggestion from Nathaniel, use `readinto` method of most
file-like objects to read data into given memory location, so we can be
sure that memory location is not used by some other object.