Fix the include path in teensy.cpp

This ensures the file gets included from the correct build install directory.
[kbd] switch to a 4MHz build, and change bounce_ms to 0

A 4Mhz build currently results in approximately 5ms per scan iteration.
My cherry MX key switches are rated for a 5ms bounce time, so this is
about right with no additional delay.  Switching from 1MHz to 4MHz
increases power utilization slightly by about 8mA.

In the future it would be nicer to use a counter to ensure that we wait
for the appropriate bounce time between scan iterations.
[usb_ctl] don't use print()'s flush keyword argument

The flush keyword argument wasn't added until python 3.3.  To allow for
backwards compatibility with python 3.2 for now, use sys.stdout.flush()
rather than the flush keyword argument.
[kbd] Adjust logging levels in KbdDiodeImpl-defs.h

Make the ghosting information higher than the standard logging performed
in getState().
[kbd] Ensure rectangle is still detected before de-ghosting

Before performing 1-diode ghosting resolution, make sure the entire
rectangle is still detected.  Finding the rectangle takes a non-zero
amount of time, and it is possible that the full rectangle is no longer
pressed by the time ghost1Diode() runs.  If this occurs, ghost1Diode()
is operating under incorrect assumptions and may decide to block the
wrong key.

This changes ghost1Diode() to rescan the rectangle before proceeding.
This reduces the window of time for this race condition to occur.  In
practice I haven't seen it be an issue any more.

Ideally we should do the same for the 2- and 3-diode cases as well.
I haven't done so yet since I don't have any cases to test this with on
my current keyboard.
[kbd] Only perform ghosting resolution when 4 or more keys are pressed

Ghosting can only occur if all 4 corners of a rectangle are pressed.
Don't waste our time looking for rectangles when less than 4 keys are
down.
[kbd_v1] Update to use KbdDiodeImpl

Change the kbd_v1 code to use the new KbdDiodeImpl class for its
implementation.
[bitmap] fix allocation when a multiple of 8

The Bitmap class previously allocated one more byte than necessary when
the number of bits was a multiple of 8.
[kbd_v1] Update USB descriptors

Update the USB descriptors to match the kbd_v2 descriptors.  Eventually
we should combine the two implementations, rather than having two copies
of the same code.
[kbd] Add a common KbdController class

Move the kbd_v2 Controller class to a common shared location, and update
the kbd_v1 code to use it.