After this change:
* `Core.pollEvents` returns an iterator. At the time of polling events, Mach core
will perform work to poll for events, handle resizing of the framebuffer, etc.
and the iterator allows the caller to consume all available events.
* The event queue is now baced by a `std.fifo.LinearFifo`, which removes the need
for dynamic allocation of each event. Instead, the event queue starts with a generous
size suitable for most high-end gaming setups (high-precision mouse, etc.) and can
grow, but never shrink, up to the maximum event queue size experienced by the app
within any given frame. Effectively, this means we find the maximum capacity needed
to store events and avoid runtime allocations.
* `Core.hasEvent` is removed.
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>