CSS clip should not be considered when clamping for overflow clip.

Previous patch in webkit rev 152919 partially fixed this, but skipped one code
path that still needed fixing. These code paths are intended to clamp the
backgroundRect to the borderBox, or a slightly inflated borderBox.  It is
incorrect to trigger those code paths when there is only CSS clip and no
overflow clip.  Fixing this bug also results in a tiny refactor where the CSS
clip if-statement is separated from the overflow clip chunks of code.

BUG=246728
R=esprehn@chromium.org

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

git-svn-id: svn://svn.chromium.org/blink/trunk@152980 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Split up long layout tests (automatically-opt-into-..., build-paint-order-lists)

Both of these tests have been timing out on win debug builds.

R=jchaffraix

BUG=248078,245836

Review URL: https://chromiumcodereview.appspot.com/16511005

git-svn-id: svn://svn.chromium.org/blink/trunk@152981 bbb929c8-8fbe-4397-9dbb-9b2b20218538
This introduces one place, Microtask::performCheckpoint, to add checkpoint steps and teleports all calls to MutationObservers::deliverAllMutations to their new home.

It pulls the callback dispatching behavior that was left in CustomElementRegistry into its own class, CustomElementCallbackDispatcher. Custom Elements have evolved and how involve four callbacks with three timing semantics. CustomElementCallbackDispatcher will be the traffic cop when the latter three kinds of callbacks are implemented.

This is fixes two bad behaviors (1. run Custom Element lifecycle callbacks and Mutation Observers in an inconsistent order depending on callsite; 2. allow pending lifecycle callbacks, or mutation events begot by lifecycle callbacks, to persist until the next microtask.)

BUG=234509

Review URL: https://chromiumcodereview.appspot.com/14660019

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