[devtools] Add DOMSnapshot domain for dom+layout+style snapshots.

Introduces a new DOMSnapshot.getSnapshot command, which returns a
flattened dom tree together with layout objects and computed styles.

By combining all trees in one command's result, we avoid the potential
for inconsistencies between them.

The patch also removes the unused DomTreeExtractor wrapper in
headless/. In a subsequent patch, we'll further remove the now obsolete
FlatDomTreeExtractor and CSS.getLayoutTreeAndStyles.

BUG=546953

Review-Url: https://codereview.chromium.org/2882193002
Cr-Commit-Position: refs/heads/master@{#478513}
21 files changed