Timeout queue.
This class implements a timeout queue for timers that are at least as likely to be cancelled as they are to expire.
Unlike the util timeout class, the duration of the timouts is shared by all scheduled tasks and if the duration
is changed, this affects all scheduled tasks.
The nested class Task should be extended by users of this class to obtain call back notification of
expiries.