Add a WaitForNotificationWithTimeout method.
Limit the time task_test can run.

A bit cheap, but should be effective (and informative)...
Add support for child tasks to util::Task.
Delay the next request in etcd watch when there's an error.

This fixes #329.