This PR adds selector weights to sort selectors by specificity

Thanks for the article and tip re:containsObject. I read up on specificity and here's what I've come up with. There's a test for this and a test for the tie breaking case as well.

This markup, for example, would trip up the unweighted code and the wrong font size would be used.

    <html>
        <head>
            <style type="text/css">
                #foo .bar { font-size: 225px; color: green; } 
                body #foo .bar { font-size: 24px; } 
                #foo .bar { font-size: 100px; color: red; }
            </style>
            <title></title>
        </head>
        <body>
            <div id="foo">
                <div class="bar">
                    Text
                </div>
            </div>
        </body>
    </html>