Indexed DB: store/index keyPath property should return same instance

On IDBObjectStore and IDBIndex instances, the keyPath property says is
defined in the spec with: "if this attribute returns an object
(specifically an Array), it returns the same object instance every
time it is inspected". Web platform tests for this were missing.

Since the property is 'any' in Web IDL (since it could be a string or
Array) it can't use the [SameObject] extended attribute. And in the
Blink IDL, it can't use the [SaveSameObject] hint since that requires
[SameObject]. Instead, use the [CachedAttribute] hint and never dirty
the cache.

Bug: 977048
Change-Id: Ic4ede31a3a01e7a8a90c4f54eb8a989a673fcf22
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1674495
Commit-Queue: Daniel Murphy <dmurph@chromium.org>
Reviewed-by: Daniel Murphy <dmurph@chromium.org>
Cr-Commit-Position: refs/heads/master@{#672137}
6 files changed