Remove the HashMap in RenderLayerCompositor's overlap map

The only reason we had a HashMap in the overlap map was to handle a recursive
treewalk in the case where we need to be composited because of our children. It
turns out the HashMap was wrong in the case where those children got composited
into another non-root layer. In that case, they would already be in the overlap
map and would be excluded in the recursive walk.

This CL removes the HashMap and instead just unites the bounds of all the
children during the normal recusive walk. If we need to composite ourself
because of our decendants, we use the united rect instead of recursively adding
all the descendant rects individually. This is both faster (3% on the
toggle_drawer compositing update) and more correct (see test).

R=enne@chromium.org

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

git-svn-id: svn://svn.chromium.org/blink/trunk@168242 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Revert of Use SkLayerDrawLooper::Builder to construct SkLayerDrawLooper. (https://codereview.chromium.org/177473003/)

Reason for revert:
crash in SkCanvas::getTotalMatrix (crbug.com/348122)
Reverting this to see if it fixes it, otherwise we can reland.

Original issue's description:
> Use SkLayerDrawLooper::Builder to construct SkLayerDrawLooper.
> 
> The addLayer() methods of SkLayerDrawLooper will soon be removed. This CL
> updates all uses of those methods with the corresponding methods in
> SkLayerDrawLooper::Builder.
> 
> BUG=skia:2141
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=168041

TBR=schenney@chromium.org,jbroman@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:2141

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

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