Rework previous change; it didn't consider that the
buf array was allocated on the stack.
(prev_read): Remove variable.
(read_avail_input_buf): New static event buffer array.
(in_read_avail_input): New static variable to avoid re-entrancy.
(read_avail_input): Change buf to pinter to read_avail_input_buf.
Use in_read_avail_input to guard against re-entry.
Do not initialize read_avail_input_buf here; instead assume it
is always cleared on entry. To ensure that, we clear (just) the
entries that were used before we return.
(init_keyboard): Initialize read_avail_input_buf here.