Extend read() method to support no-args and negative sizes (meaning readall)

This patch updates the read() method in the s3 transfer code to support read() as well as read(n). I wanted to be able to use the python zipfile code, which calls both forms, and the existing code fails with a syntax error when used this way.