kernel - Fix mmcsd read/write issues
* b_resid was not being set to 0 on a successful read or write, resulting
in random short-read and short-write returns for requests. Fixing this
fixes nominal block I/O via the mmcsd disk device.
* bus/mmc now uses tsleep() instead of DELAY for the 10ms pause in
request/command wait loops.
* bus/mmc reduces the TIMEOUT from 10 seconds to 1 second after the first
TIMEOUT, only increasing it back to 10 seconds when timeouts stop
occurring. This reduces boot-time delays when a mmc port is dead or
powered down.