File reader works correctly on empty files

Before, we would try to read in a block of records from an Avro file
immediately after reading in the file header, and we would propagate any
errors that occurred.  This meant that we couldn't read empty files.
Now, we defer trying to read in the next file block until the user
requests another record after having exhausted the previous block.  The
end of the data file still results in an error in avro_file_reader_read.