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.