* cleaned up hardclock() to avoid checking "p" multiple times, and avoid a
gcc2 possible-use-before-initialisation warning.
* changed softclock() timeout callback functions to be of type timeout_t -
a pointer to a void fn(int). No-one was using the second, tick, argument
that was being passed to these callbacks - it is much cleaner to drop the
thing entirely, rather than add a whole heap of casts of dubious
correctness to calls to timeout(), etc. The old style is kept in an
#ifdef, for future reference.