Oilpan: Prepare to move DatabaseBackendBase and its subclasses to Oilpan heap, and add GC support to database threads.

This CL makes Database thread finalization synchronous by default in
order to avoid deadlock by ~WebThread, which wait until the thread gets
idle. We ask thread finalization in DatabaseContext::stop, which is called
in ExecutionContext::stopActiveDOMObjects, and the thread finalization
tasks are finished in it. Also, we don't need to close databases explicitly
in WorkerThread and FrameLoader.

Note:
* DatabaseBackendBase is ThreadSafeRefCounted, and we had no transition
types for it. This CL adds transition types for ThreadSafeRefCounted to Handle.h.
* Now PendingGCRunner can support any thread.
* Some Persistent handles for DatabaseBackendBase need to be
  CrossThreadPersistent because the owner object is created in the main or
 worker thread, and is destructed in the database thread.


BUG=347902

Review URL: https://codereview.chromium.org/166033002

git-svn-id: svn://svn.chromium.org/blink/trunk@168888 bbb929c8-8fbe-4397-9dbb-9b2b20218538