Allows inputs by applying a fixed increment per button press, or by
applying a varying rate of change based on the duration of a button
hold. Initial implementation of code for Issue #370, #363, paving the
way for #42. Still need to transfer inputs to/from a plugin, but that's
a separate step.