stm32: Implement keyboard debouncing
stm32: Implement keyboard debouncing

This brings Randall's key debounce logic into STM32. We need to
rationalize the code, but for this morning...

This should fix problems with double keypresses and missing keypresses.

BUG=chrome-os-partner:12179
BRANCH=snow
TEST=manual
- type quickly; should work
- run your finger really quickly over the keyboard; should be able to
  see keys which don't show up because you didn't press them long enough
- run your finger quickly from 1 to 0; numbers should show up in order
  (some may be missing if you sweep too fast.  there is a point where if
  two keys are hit within 1.7ms of each other they can be swapped, but any
  slower than that and they should never be out of order)
- mash your face into the keyboard to cause ghosting; should see only a few
  keys pressed

Change-Id: I6b164a17de1b4dd698f9b45a3852fd3b6c084e0a
Signed-off-by: Simon Glass <c00b0378376498bd9cd974c388df8854c0131d27@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/34765
Commit-Ready: Randall Spangler <62698fdbb84d1779579ee80c3f39fac22017e5bc@chromium.org>
Reviewed-by: Randall Spangler <62698fdbb84d1779579ee80c3f39fac22017e5bc@chromium.org>
Tested-by: Randall Spangler <62698fdbb84d1779579ee80c3f39fac22017e5bc@chromium.org>

gelraen/cros-ec,akappy7/ChromeOS_EC_LED_Diagnostics,mtk09422/chromiumos-platform-ec,gelraen/cros-ec,fourier49/BZ_DEV_EC,akappy7/ChromeOS_EC_LED_Diagnostics,coreboot/chrome-ec,akappy7/ChromeOS_EC_LED_Diagnostics,mtk09422/chromiumos-platform-ec,thehobn/ec,longsleep/ec,thehobn/ec,fourier49/BIZ_EC,fourier49/BZ_DEV_EC,fourier49/BIZ_EC,fourier49/BZ_DEV_EC,md5555/ec,gelraen/cros-ec,fourier49/BZ_DEV_EC,alterapraxisptyltd/chromium-ec,gelraen/cros-ec,longsleep/ec,eatbyte/chromium-ec,mtk09422/chromiumos-platform-ec,md5555/ec,coreboot/chrome-ec,fourier49/BIZ_EC,longsleep/ec,alterapraxisptyltd/chromium-ec,coreboot/chrome-ec,akappy7/ChromeOS_EC_LED_Diagnostics,coreboot/chrome-ec,fourier49/BIZ_EC,mtk09422/chromiumos-platform-ec,coreboot/chrome-ec,akappy7/ChromeOS_EC_LED_Diagnostics,eatbyte/chromium-ec,coreboot/chrome-ec,eatbyte/chromium-ec,thehobn/ec,longsleep/ec,md5555/ec,alterapraxisptyltd/chromium-ec,alterapraxisptyltd/chromium-ec,eatbyte/chromium-ec,md5555/ec,thehobn/ec