Fix tap keys acting as hold keys

A design limitation of this input system: Because we don't pass in
discrete events or interrupts, it's the game's responsibility to turn
off buttons that are only valid for one frame. The true difference
between "tap" and "hold" is that "hold" will maintain its state even
when the game turns it off.