gcore(1): Remove no longer needed prototype.
ig4 - Use interrupt to wait for receive data

* The transmit FIFO is typically big enough to hold the full command
  so we do not usually hit the DELAY(25) in the poll loop.  However,
  this is not the case when receiving data.

* Generate an interrupt on stop-bit detection and when a character is
  received.  Set the receive FIFO threshold to 1.  Our polling loop works
  the same way but this allows us to use lksleep() instead of DELAY(25)
  when waiting for receive data.

* Reduces cpu overhead very significantly.  The cyapa (trackpad) driver
  polling at 100hz previously ate 10% of the cpu and now only uses 2%
  or less when fully active.
cyapa - Reduced polling rate on idle detection

* Reduce the polling rate from 100hz to 20hz when the trackpad is not in
  use.  This greatly reduces power consumption by the trackpad and cpus.
  Power consumption on my Acer C720 drops from ~8.2W to ~7.8W using default
  values with this (and the prior I2C interrupt) commit.

* Reduce the polling rate to 1hz when the trackpad is not open.
  TODO - we should power-down the trackpad in this situation.

* The idle rate is used whenever the trackpad has been idle more than 1
  second.
ig4 - improve interrupt handling

* Have the interrupt read the data from the rxfifo in order to clear
  the interrupt condition, rather than relying on the polling code to
  do it.

* Should fix partial ig4 interrupt live-locks.  Still under test.
Add gcore(1) to the x86_64 build too. It builds and appears to work.
libc: Create MLINKS for hesiod(3) too when it is requested.
callout.9: Mention callout_stop_sync().
kernel: Use callout_stop_sync() in a number of drivers.