IndexedDB: Keep transaction object alive while finishing

During context shutdown, if GC has completed, the database may be
holding the last reference to a transaction being completed/aborted.
If so, removing it from its transaction list would free it before it's
last use. Boom. Make sure the transaction is kept alive while the
database is finishing it up.

BUG=294206
R=inferno@chromium.org,alecflett@chromium.org,dgrogan@chromium.org

Review URL: https://chromiumcodereview.appspot.com/23868043

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