Oilpan: Prepare to move SQLTransactionBackendSync and SQLTransactionSync to Oilpan heap.

We need to rollback a transaction if SQLTransactionBackendSync is dying and its
transaction is in progress. However Oilpan architecture doesn't allow us to
touch associated DatabaseSync in ~SQLTransactionBackendSync.

This CL adds a PersistentHeapHashMap<WeakMember<T>, U> to
DatabaseSync to manage SQLTransactionSync, and it makes possible
to call SQLTransactionSync::rollbackIfInProgress before the destruction.

Note:
- m_database->executionContext() can be null in some functions because on-heap
  objects can live after dissociation of ExecutionContext.
- Change the argument of DatabaseSync::rollbackTransaction to a reference
  because PassRefPtr is unnecessary here and the argument is always non-null.

BUG=347902

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

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