Rewrite DomWalker.walk

This makes DomWalker.walk no longer recursive. The biggest benefit to
this is that it makes perf profiles easier to parse (because all the
calls to visitor.visit()/exit() now have the same stack trace above
them).

Adds a test case for things that weren't covered by previous tests.

BUG=431067
R=mdjones@chromium.org, nyquist@chromium.org

Review URL: https://codereview.chromium.org/751423002
Refactor handling of labels and tagactions

Also adds a really ugly test of TextDocument construction (that just
creates the TextDocument for some large html string). This should be
updated/removed as we finish the refactoring of this stage.

BUG=431067
R=nyquist@chromium.org

Review URL: https://codereview.chromium.org/753923002
Remove a bunch of unused stuff

R=mdjones@chromium.org

Review URL: https://codereview.chromium.org/759483002
Updated from original dom-distiller repo
Fixed a conflict