Add a routine to detect changes since the last task was triggered.

On a slow machine or a machine under heavy IO load , an editors'
deleted/save cycle can be longer than the debounce timeout, in this
case the delete is seen but the save 'add; event occurs during the task
run and is missed.

We could lengthen the debounce timeout - but this is not a sensible way
to deal with race conditions. A side effect of that when a watch based task
is started it immediately see all the files as added and triggers a task
run.