message: Update and draw only on MainEventsCleared.
  I think this was left over by some sort of merge mistake? moved
  state.update() and state.draw() into the MainEventsCleared handler,
  where they should be, but somehow they wound up outside again.  Anyway,
  this fixes FPS issues in astroblasto on my machine.
diff: @@ -271,23 +271,6 @@ where
  // internal state however necessary.
  ctx.timer_context.tick();
  - if let Err(e) = state.update(ctx) {
  - error!("Error on EventHandler::update(): {:?}", e);
  - *control_flow = ControlFlow::Exit;
  - return;
  - }
  -
  - if let Err(e) = state.draw(ctx) {
  - error!("Error on EventHandler::draw(): {:?}", e);
  - *control_flow = ControlFlow::Exit;
  - return;
  - }
  - }
  - Event::RedrawRequested(_) => (),
  - Event::RedrawEventsCleared => (),
  - Event::LoopDestroyed => (),
  - }
  -
  // Handle gamepad events if necessary.
  if ctx.conf.modules.gamepad {
  while let Some(gilrs::Event { id, event, .. }) = ctx.gamepad_context.next_event() {
  @@ -306,8 +289,22 @@ where
  }
  }
  ctx.timer_context.reset_incremental_update_counter();
  - // TODO: D:
  - state.update(ctx).expect("Update failed somehow");
  - state.draw(ctx).expect("Draw failed somehow");
  +
  + if let Err(e) = state.update(ctx) {
  + error!("Error on EventHandler::update(): {:?}", e);
  + *control_flow = ControlFlow::Exit;
  + return;
  + }
  +
  + if let Err(e) = state.draw(ctx) {
  + error!("Error on EventHandler::draw(): {:?}", e);
  + *control_flow = ControlFlow::Exit;
  + return;
  + }
  + }
  + Event::RedrawRequested(_) => (),
  + Event::RedrawEventsCleared => (),
  + Event::LoopDestroyed => (),
  + }
  })
  }
  