Implements new distribution algorithms for Shadow DOM, which was newly designed.

Shadow insertion points now behave like a constructor call for a super class. See the followings for details:

- The spec: https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#distributions
- The spec issue: https://www.w3.org/Bugs/Public/show_bug.cgi?id=22344

This change affects not a few other features, such as event.path, InsertionPoint.getDestirubtedNodes() and Node.getDestinationInsertionPoints(). They all depend on the result of distributions.

This change is a feature enhancement. At the same time, this change is backward *incompatible*. I've updated several existing layout tests so that they adapt the new feature and keep their behaviours as well.

I've also updated some performance tests so that they adapt the new feature. I expect there will be a performance regression in the following performance in theory:

- /ShadowDOM/ContentReprojection
- /ShadowDOM/DistributionWithMultipleShadowRoots
- /ShadowDOM/LargeDistributionWithoutLayout
- /ShadowDOM/ShadowReprojection

I've not renamed those tests so that we can compare the results in the official bots. If we find any other regressions other than ShadowDOM/*.html performance tests, please feel free to file a bug.


BUG=263701

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

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