/*
 * call-seq:
 *    read(len = nil)
 *
 * Read decompressed data from the stream.
 *
 *    Bzip2::Reader.new(Bzip2.compress('ab')).read    # => "ab"
 *    Bzip2::Reader.new(Bzip2.compress('ab')).read(1) # => "a"
 *
 * @return [String, nil] the decompressed data read or +nil+ if eoz has been
 *    reached
 * @param [Integer] len the number of decompressed bytes which should be read.
 *    If nothing is specified, the entire stream is read
 */
static VALUE bz_reader_read(int argc, VALUE *argv, VALUE obj) {