Clip absolute bounding box to backgroundClipRect before overlap testing

This fixes a bug where we overpromoted layers because the rect
we compared for the overlap test was not clipped to it's
backgroundClipRect. The new test expectations show the bug fix.

Since this uses the needsToUpdateAncestorDependentProperties dirty
bit, this also saves ~1-2% on the key_silk_cases inbox app drawer
swipe (the tip of tree version on github, not the one checked
into chromium). It doesn't save all the 2.5% of time we spend
in backgroundClipRect because now we compute that rect even
for things that don't go into the overlapMap.

Changed the rect we cache on RenderLayer to be the clipped rect.
This required moving the hack that expands empty rects to 1x1 into
there as well, otherwise, when we intersect with the empty rect,
we get an invalid rect (0, 0, 0, 0) and expand that to (0, 0, 1, 1),
which would mean we'd incorrectly overlap anything on the first pixel
of the page.

Also, added an early return to RenderLayerCompositor::addToOverlapMap
if the rect we're trying to add is empty since that's now possible
after we intersect with the backgroundClipRect.

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

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