Merge WebThreadBase into Thread.

This CL melds WebThreadBase's implementation into Thread, and removes
WebThreadBase. Now WebThreadImpl* classes directly inherit from Thread.
This is part of WebThread refactoring effort.

The new implementation uses WTF::HashMap instead of std::map to store
the mapping of TaskObservers. TaskObserverAdapters are stored in
std::unique_ptr, so we don't need manual new/delete calls. Eventually,
we will migrate to base::MessageLoop::TaskObserver instead of Blink's
custom TaskObserver, which would eliminate this mapping object.

Thread::IsCurrentThread() is now implemented in terms of its thread-
local storage for Blink threads, just because we already have that
knowledge ourselves.

Also, {Add,Remove}Task{,Time}Observer() are simplified. Now the
internal versions of those functions are removed, and TaskObserver
functions are now non-virtual.

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