Implement invalidation tracking in devtools

This patch adds the first bits of the invalidation tracking experiment.
Our full design doc is at:
https://docs.google.com/document/d/1BXT3_gD--YdbIYMlTzNGsyUUMBCZJ7V5qGJhMA-pGrs/edit

This patch implements the invalidation tracking logic for paint
events only. Layout, style recalc, and compositing updates will be
instrumented in a followup. To keep this patch simple, only the basic
invalidation information has been added. Additional style invalidation
information (https://src.chromium.org/viewvc/blink?view=rev&revision=183643)
will be plumbed through in a followup.

Reviewers are encouraged to play with this patch. Steps for testing:
1) Go to about://flags and enable "Enable Developer Tools experiments."
2) Restart Chrome.
3) Start Chrome, open devtools, and click the sprocket. Select
"Experiments" and enable "Timeline with full invalidation tracking".
4) Restart devtools (or open a new tab).
5) Open your favorite slow page (or try http://pr.gg/jscsslayout.html),
open devtools, start the timeline with the "Causes" checkbox checked.
6) Click the Paint events in the timeline, notice invalidation data!

A screenshot preview is available at: http://pr.gg/invalidations7.png

BUG=410701

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

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