[IndexedDB] Prevent removal of index tombstones in readonly transactions

This change fixes the case where a readonly transaction was writing
changes to disk. It pipes the transaction mode into the IDBBackingStore
Transaction & the CursorOptions so index tombstones can be optionally
deleted.

This is tested by the web platform test idbindex_reverse_cursor.any.js
(among other web platform tests).

To combat the extra tombstones that will be generated by this change,
the tombstone sweeper's parameters have been tweaked to allow for more
sweeping.

Doc describing the root cause more:
https://docs.google.com/document/d/1R_l3LsgT6VtSh-T0gQlQ5AqvFdfGLehfqWhDa7Oor-E/edit#

[email protected]
R=​[email protected]

(cherry picked from commit d8cb393e5b93ae5769fb092d42912d1c4b9cd03b)

Bug: 1033996
Change-Id: I8354f3c76d14d4805c1072ce148ad9a1f0cceca9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1967926
Commit-Queue: Daniel Murphy <[email protected]>
Reviewed-by: Joshua Bell <[email protected]>
Reviewed-by: Victor Costan <[email protected]>
Cr-Original-Commit-Position: refs/heads/master@{#724881}
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1971229
Reviewed-by: Daniel Murphy <[email protected]>
Cr-Commit-Position: refs/branch-heads/3987@{#216}
Cr-Branched-From: c4e8da9871cc266be74481e212f3a5252972509d-refs/heads/master@{#722274}
10 files changed