Storage.idl: Drop [NotEnumerable], remove anonymous getter/setter/deleter.

Fix a few TODO items by making our IDL closer to the spec:

* There is nothing in the spec saying the operations declared in the Storage
  interface should not be enumerable. Since the default according to WebIDL
  is for operations to be enumerable, drop the non-standard [NotEnumerable]
  extended attribute.
  This is a user-visible behavior change that matches the spec, as well as
  Gecko (since Firefox 34) and WebKit (since r195760, Safari 10.1).

* Merge the anonymous getter, setter and deleter into the existing getItem,
  setItem and removeItem operations as mandated by the spec. One visible
  difference is that the anonymous getter returned a DOMString, whereas
  getItem() returns a DOMString? (i.e. null is valid return value).

Adjust a few tests in the process:
* external/wpt/webstorage/storage_enumerate.html: the first test did not
  make a lot of sense; now that Storage's operations are enumerable, looping
  with a for-in would add them to |enumeratedArray| unless we add a
  hasOwnProperty() check. Adding that check no longer adds
  "prototypeTestKey" to |enumeratedArray| though, but that is working as
  expected since it is not really a key but rather something inherited from
  Storage's prototype. Add a test for that as well.
* Drop a few Blink-only tests from storage/domstorage that were duplicating
  the same checks done by the test above. It makes sense to rely on WPT
  instead of fixing them as well.

Bug: 651774
Change-Id: Ibf90700eb3d472f66b4ff2dc6ab9b6e6a4b2f211
Reviewed-on: https://chromium-review.googlesource.com/691974
Commit-Queue: Raphael Kubo da Costa (rakuco) <raphael.kubo.da.costa@intel.com>
Reviewed-by: Joshua Bell <jsbell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#505745}
14 files changed