Adding test case for issue #217

that exercises compound id/class selectors, descendant selectors, child
selectors, and CSS3 pseudo-selectors.
(Issue 217) Advanced CSS support

The patch uses Element.matches or browser-prefixed
Element.matchesSelector where available, with Sizzle as a fallback.
Availability is fairly widespread:

http://caniuse.com/#feat=matchesselector
https://developer.mozilla.org/en-US/docs/Web/API/Element.matches

Note that Sizzle introduces a ~50% increase in minified and gzip'd size (19
KB -> 28 KB). That said, you don't need to include it unless you're
supporting old browsers.

This patch also implements CSS specificity-based rule precedence, using
https://github.com/keeganstreet/specificity as a reference
implementation (and stripping out the parts that aren't needed here).

No hard data on whether this introduces a noticeable perf regression,
but seems fine from the example testing page.