An event based button class designed to be simple and easy to use.
Supports press, hold, and release events. Can be used with both INPUT and INPUT_PULLUP.