Implement kgets to get a line

* Keyboard now has raw scancode/ASCII modes and unbuffered/line buffered
  modes.