Move IdleTaskRunner() from WebThreadScheduler to ThreadSchedulerImpl.

The virtual function IdleTaskRunner() defined in WebThreadScheduler is
not used by anybody except the scheduler internal code, so it should be
defined in ThreadSchedulerImpl instead. Along with that function, the
header for SingleThreadIdleTaskRunner is moved to scheduler/common, as
it's only used in combination with IdleTaskRunner().

SingleThreadIdleTaskRunner uses base::RefCountedThreadSafe which is
banned, but this can't be replaced with WTF::ThreadSafeRefCounted,
because MainThreadSchedulerImpl having a SingleThreadIdleTaskRunner
is instantiated before PartitionAlloc is initialized. The presubmit
script is modified so it would allow the usage of base::RefCounted
just for this file.

Bug: 826203
Change-Id: I2ddcbe9a9a1af6bce5cd87e9d097be86641703fe
Reviewed-on: https://chromium-review.googlesource.com/c/1306951
Commit-Queue: Yuta Kitamura <yutak@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Alexander Timin <altimin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#605273}
17 files changed