Support FileDescriptorWatcher in ScopedTaskEnvironment::MainThreadType::IO

This is cleaner than having individual tests manage their own
FileDescriptorWatcher instances and it removes a few existing
usages of MessageLoopForIO::current() as a MessageLoopForIO* (which will
no longer be legal after : https://chromium-review.googlesource.com/c/chromium/src/+/957760).

R=fdoray@chromium.org
TBR=sergeyu@chromium.org (c/b/extensions/api/messaging side-effects)
TBR=hidehiko@chromium.org (components/arc cleanup)

Bug: 825327, 708584
Change-Id: I2c4507cc7a4af073afaf19cd3d802c3bb5fd7f39
Reviewed-on: https://chromium-review.googlesource.com/1005780
Commit-Queue: Gabriel Charette <gab@chromium.org>
Reviewed-by: Gabriel Charette <gab@chromium.org>
Reviewed-by: François Doray <fdoray@chromium.org>
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#549857}
8 files changed