[ES6 modules] Update #internal-module-script-graph-fetching procedure

This CL implements the changes introduced in whatwg html spec PR:
https://github.com/whatwg/html/pull/2674

Summary:
- "final result" is now simply the "module script", instead of previous
  "descendant module script" which was used to report where error occurred.
- "#fetch-the-descendants-of-a-module-script" assumes (actually asserts)
  that all module specifiers are valid, as now it is guaranteed that their
  failure is handled at ModuleScript::Create.
- ModuleTreeLinker::NotifyOneDescendantFinished now waits for all descendants
  fetch to complete, even in error cases.
-- This matches spec procedure precisely, but we can optimize here later
   while keeping the behavior.
- ModuleScriptLinker now only triggers instantiate on module tree root.
  (iff ModuleGraphLevel == kTopLevelModuleFetch)
-- V8 is now responsible for instantiating the descendant tree +
   keeping their instantiation status as module script's record's
   [[Status]] (accessible via ModuleScript::RecordStatus() in Blink)
-- UninstantiatedInclusiveDescendants() is removed, as it is no longer used.

With this change, Blink now conforms to all module script WPTs!

Bug: 594639, 727299, https://github.com/whatwg/html/pull/2674
Change-Id: I7354e00820dd222f30b4a4eba1d3cf8c1b319798
Reviewed-on: https://chromium-review.googlesource.com/540960
Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Kouhei Ueno <kouhei@chromium.org>
Cr-Commit-Position: refs/heads/master@{#483957}
4 files changed