Reland of "file_manager: Migrate FILE thread to TaskScheduler"

The original patch (crrev.com/483916) was reverted due to an ASAN error.
The ASAN error (stack-use-after-return) was caused because the change callback,
that references variables on the stack, was run after leaving the test function.

This patch solved this problem by flushing tasks in the message loop.
Along the way, removed the explicit deletion of FileWatcher.

BUG=689520
TEST=new file in Downloads is detected and displayed instantly (file watching is working as before)
ALSO_TEST=built unit_tests with ASAN enabled locally to ensure that the ASAN error is gone

Review-Url: https://codereview.chromium.org/2970653002
Cr-Commit-Position: refs/heads/master@{#484191}
6 files changed