Return size_t instead of streamsize in File::read and File::write

File::read and File::write throw exception on error, so they don't need to return a negative value to indicate error.