InputBuilder sucks

Reading state from the gamepad involves writing to a buffer. Initially the gamepad itself held a buffer and returned a reference to it, borrowing itself preventing mutable access. This was fixed in commit 1178df91, but this introduced `InputBuilder`. Getting input is somewhat complicated with parameters, as it:

  • accepts an optional buffer to write into
  • accepts an optional function to call on each read (get_input only gets the latest)
  • should (but does not yet) accept stack-based buffers