/*
 * call-seq:
 *    ungetc(byte)
 *
 * "Ungets" a character/byte. This rewinds the stream by 1 character and inserts
 * the given character into that position. The next read will return the given
 * character as the first one read
 *
 *    reader = Bzip2::Reader.new Bzip2.compress('abc')
 *    reader.getc         # => 97
 *    reader.ungetc 97    # => nil
 *    reader.getc         # => 97
 *    reader.ungetc 42    # => nil
 *    reader.getc         # => 42
 *    reader.getc         # => 98
 *    reader.getc         # => 99
 *    reader.ungetc 100   # => nil
 *    reader.getc         # => 100
 *
 * @param [Integer] byte the byte to 'unget'
 * @return [nil] always
 */
static VALUE bz_reader_ungetc(VALUE obj, VALUE a) {