Oh -- and for the keyboard -- look into the work done with custom keyboards and a microcontroller called the "Teensy" -- the code should be compatible with an Arduino Micro -- of which cheap clones can be had on eBay. To be clear, you want the Arduino MICRO with the ATMEGA32U4 in it, and specifically NOT the similar Arduino NANO with the ATMEGA328 in it. The '32U4 part has on-chip USB so you can do USB-HID stuff with it.
A Teensy could work, indeed. The issue is - the keyboard needs 24 (16+8) pins. Now that I think of it, we can use 32U4, it has 8 PCINT pins (that we can use for 8 rows) and there are 18 GPIOs remaining - enough to implement I2C (without the INT pin, though) or PS/2 - or, indeed, use USB.
I will warn you that the cheap Arduino clone boards tend to use a particularly touchy voltage regulator -- I've fried one of those boards that way, it's not hard...
Does the regulator come into play if we feed the ATMega32U4 from either 5V or 3.3V directly into VCC? I guess it doesn't.