scheduler: Merge WebSchedulerImpl into NonMainThreadScheduler.

As part of ongoing scheduler architecture refactoring, this patch
updates NonMainThreadScheduler so it can be used in place of
WebSchedulerImpl.

Specifically, this patch does the following:

* Let NonMainThreadScheduler inherit from ThreadScheduler (in addition
  to WebThreadScheduler).
* Implement required virtual functions.
* Remove WebSchedulerImpl instance from WebThreadImplForWorkerScheduler,
  and make it work with NonMainThreadScheduler.

Now, WebThreadImplForWorkerScheduler works without relying on
WebSchedulerImpl.

WebSchedulerImpl is still used by RendererWebSchedulerImpl, so the class
itself is not removed yet.

This patch adds post-constructor initialization to NonMainThreadScheduler
in order to initialize a member requiring a virtual function call. The
work is done in the Init() function which is now a non-virtual function
of the class, and the original virtual Init() function is renamed to
InitImpl(), which is called from Init().

Bug: 826203
Change-Id: I7499fb1df197b760e2289414020f7136e3545a46
Reviewed-on: https://chromium-review.googlesource.com/1032452
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@{#556394}
14 files changed