HTML Imports: No more BlockingDocumentCreation.

This change gets rid of HTMLImportState::BlockingDocumentCreation.
This is a perf improvement as Blink no longer delay parsing of imports
which leads earlier fetch requests.

To make it work, the change:

 * Gets rid of the notion of "owning loader".
   Now fewer places depends on the import tree ordering.

 * HTMLImportLoader::addImport() is one of such place.
   It does ensure that:

   * The firstImport() is the first import of the same URL in
     tree order of the import tree.
   * The firstImport() has all children that is loaded by the document.

   HTMLImport::recalcTreeState() and HTMLImportLoader::shouldBlockScriptExecution()
   relies on these invariants.

 * The microtask queue of CustomElementMicrotaskImportSteps is got owned by
   HTMLImportLoader. Also, now each HTMLImportChild can have the step
   regardless of its tree order. This ensures that each imported document blocks
   microtask queue consumption of all referring documents.

 * HTMLImportResolver::shouldBlockDocumentCreation() is merged into
   shouldBlockScriptExecution()

The change on import-nested-dup.html is to cover the observable invariant of
script execution order more precisely.

TEST=import-dup-custom-element.html,import-nested-dup.html,import-nested-dup-2.html
R=dominicc@chromium.org
BUG=none

Review URL: https://codereview.chromium.org/238923009

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