Add debugging methods to LayoutRect and IntRect.

BUG=

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

git-svn-id: svn://svn.chromium.org/blink/trunk@173223 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Re-re-land usage of the V8 Microtask queue for all Blink microtasks

This allows proper interleaving of various end-of-microtask work (DOM
mutation observers, custom element callbacks, promises, etc), as
specified in HTML and discussed in the spec bug at
https://www.w3.org/Bugs/Public/show_bug.cgi?id=22296.

The change was originally landed in https://src.chromium.org/viewvc/blink?revision=169978&view=revision
and re-landed in https://src.chromium.org/viewvc/blink?revision=170386&view=revision (with LSan
errors fixed).

This version of the patch includes an additional fix in V8Binding.cpp to
handle the fact that v8::Isolate::GetEnteredContext() can return the
DOM-in-JS context when V8 runs JS-native callbacks, since inside V8 there's
no concept of "entered" contexts (it's purely a DOM/HTML concept). This case
is covered by fast/frames/location-observe-callback-crash.html.

BUG=360891, 368366, 369503

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

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