* To avoid issues with platforms that enforce no pull flags when
pins are used as outputs, infer the pull flags in code instead of
setting them in the DTS for charlieplex kscan driver.
* Use `LISTIFY` macro instead of deprecated `UTIL_LISTIFY`.
If the interrupt pin is set, use the interrupt code, else poll.
This change results in a slightly larger executable in both cases,
with unreachable code. More so in the case of polling, bet the
difference is not great.
Multiplex handler (all->all) with single pin for interrupt handling.
For wired boards/shields, the interrupt can be ignored to simplify the
electronics greatly.
* Promote previously local debounce code from kscan drivers to exposed
module lib, for use with other drivers as needed.
* Refactor existing kscan driver to new "public" API.