If read() is called on a file without specifying num_bytes, assume they want the whole thing.

Previously, calling read() without the optional parameter num_bytes would crash:

    TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'

because num_bytes defaulted to None

My change sets num_bytes to the size of the file in the event it's not provided, so that the entire file contents are returned.