Implement keyboard driver.

Currently, the keyboard driver API is very restricted-- it allows the client to consume one ASCII character at a time.  The characters correspond to the keydown events of printable characters, adjusted according to the state of the Shift keys.

To show that it works, a very simple echo prompt was added.