[Custom Elements] Makes HTMLImports suspends following elements upgrade.

This change entangle HTMLImports and Custom Elments so that in-progress
imports block following custom elements from getting upgrade.
It ensures these custom elemnts to get proper definition, which can be
given in preceding imports.

In this CL,

- we introduce CustomElementPendingImport class, which is now an anotehr type of
  CustomElementBaseElementQueue item. The PendingImport has its own
  base element queue. It means that the queue now bocomes the nested list,
  which captures the tree structure of the import tree.
  The item processing of the nested queue is done through process() virtual function.

- Item consumption of the base element queue becomes suspendable.
  If the queue contains any PendingImport, the processing will suspend.
  PendingImport will be removed from the queue once the import is fully loaded.

- HTMLImport had a bug that confuses the notion of "blocking" and "loading"
  the mixture is fixed in this change as well.

R=dominicc
TEST=imports-block-upgrade-in-import.html,importblock-upgrade-in-master.html
BUG=313384

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

git-svn-id: svn://svn.chromium.org/blink/trunk@164737 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Use StringBuilder::append instead of String::append

BUG=268281

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

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