findTraverseRoots should not return ClassRootNodeList when any ancestor of rootNode has a given class name.

When any ancestor of a given rootNode has a selecotr's class name,
querySelector needs to check all descendants of the rootNode.

For example, suppose that we have the following DOM tree:

<div class="class">
  ...
     <div id="target">
       ...
     </div>
  ...
</div>

and that we need to run 'document.getElementById('target').querySelectorAll(".class div")'.
We need to check all descendants of the target.

BUG=304069
TEST=fast/selectors/querySelector-leftmost-selector-matches-ancestor.html

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

git-svn-id: svn://svn.chromium.org/blink/trunk@159219 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Rewrite make_names.pl in Python

This CL switches us from using Perl to generate FetchInitiatorTypeName.(cpp|h)
to using Python. The python code integrates with our existing Python in_file
support and uses jinja2 templates.

Implementing this CL required porting superfasthash from Perl to Python, which
I did with reference to https://github.com/vperron/python-superfasthash. That
project, as well as the original code, is LGPL 2.1, which is an acceptable
license for Blink.

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

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