Add a timeout object that can be interrupted

Add and use this object to make it so that the worker
executor notifier can run and also be interrupted when
its owning thread is finished (thus allowing it to be
finished before the timeout is reached).

Change-Id: Ice9f3b74b894dd7a76ab94ba4561b9405eba0206
Merge "Add a timeout object that can be interrupted"