HTML Imports: Stop overly recreating CEMicrotaskImportStep

The fix r174141 let re-create the step object for all "normalized"
HTMLImportChild-ren, but re-created steps go into wrong position
in the queue. This is incorrect.

Think about following mircostep queue:

- [ResolutionStep(Ra), ImportStep(Ia), ResolutioStep(Rb)]

If we invalidate |Ia| in the middle and recreate one,
the updated queue will look like this:

- [ResolutionStep(Ra), ResolutionStep(Rb), ImportStep(Ib, recreated)]

Then recreated |Ib| doesn't block |Rb|, which results wrong resolution
order.

The recreation was done because normalize() can break an invariant
that prohibits cycles in nested mirotask step queues. The recreation
was done as a simple way to revalidate this invariant.
This change instead checks the possible invariant violation in normalize(),
and kill steps that violate the invariant.

Note that added tests don't use existing testing harness because
loading external resources interfares the behavior.

BUG=395686
R=dglazkov@chromium.org
TEST=import-normalize-resolve-*.html

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

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