Require FilePathWatcher destructor to be called in sequence with Watch().

file_path_watcher_win.cc and file_path_watcher_kqueue.cc need to do
some cleanup on the sequence from which Watch() is called. They use
destruction observers to do this cleanup when the MessageLoop from
which Watch() is called is destroyed (after that, it is too late to
post tasks to the MessageLoop sequence).

With this CL, the FilePathWatcher destructor must be called on the
sequence from which Watch() is called. That means that will be able
to move the work done in MessageLoop destruction observers to the
FilePathWatcher destructor. Getting rid of destruction observers in
FilePathWatcher is important because they are not supported in
TaskScheduler.

TBR=scottbyer@chromium.org
BUG=650723

Review-Url: https://codereview.chromium.org/2438913003
Cr-Commit-Position: refs/heads/master@{#431921}
17 files changed