This code uses existing system command functionality. The I2C
registers are placed in front of system command register, to
allow for a single transaction proxied I2C A reads/writes.
Not tested, yet.
Polling mode was supposed to help with broken keyboard matrix, where
some keys are stuck, but this is handled well by the pre-existing code
already, so there's no need for this.
I2C register layout changed a bit to make various operations easier
to implement in FW and for the user.
Flashing/debugging tools now share more code. Firmware is now more
configurable (it's now possible to compile-out various features).
Self-testing for column-shorts is implemented.
Firmware is optimized for low power consumption.