Re-organized and simplified

Used bools where I should be (but was using chars previously).
Simplified overall code. There is a new opportunity for a bug to pop up
in the future (see the new use of the "button_report" type), but it
would be very difficult to trigger. It basically involves triggering
more than 8 keys in the same millisecond, and even then isn't
guaranteed to do anything bad.