Add a util::Task class to manage async operations.
Address comments.
More comments addressed.
Have newlines at the end of notifications in etcd_watch.
Release the lock in Notification before notifying waiters.

This can avoid a bit of contention, since the first thing that a waiter would
do is try to take the lock.
Add "using" statements to fake_etcd.cc.

Some of the lines are rather long, try to make the code easier to read.
Convert the members of libevent::Base to use unique_ptr.

This also ensures the destruction order of the members, to avoid
use-after-free issues.
Merge branch 'util_task_initial' into integration
Add cancellation support to util::Task.
Add memory management to util::Task.
Add more things to util::Task.