Oilpan: Move database closing task in ~DatabaseBackendSync to a pre-finalization hook with HeapHashMap.

This is a preparation to move DatabaseContext class to Oilpan heap.

We need to access a DatabaseContext during closing a database. So, we can't
close the database in ~DatabaseBackendSync if we make DatabaseContext class
GarbageCollected.

We have a HashSet in DatabaseContext to close opening DatabaseBackendSync on
context shutdown.
 - If a DatabaseBackendSync is alive until context shutdown, DatabaseContext can
   close it as ever.

 - If a DatabaseBackendSync is garbage-collected before context shutdown, we
   need to detect it is about to finalized and need to close it. We change the
   HashSet to HeapHashMap<WeakMember<DatabaseBackendBase>,
   OwnPtr<DatabaseCloser>>.  It realizes pre-finalization hook.

BUG=347902

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

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