Basic boilerplate for lexing CSS selectors.
Lexing of various primitive CSS tokens.

This includes brackes, commas, pipes (used for namespaces) and more.
Re-organized some of the CSS lexer tests.
Lexing of various CSS operators.
Basic setup for lexing CSS pseudo selectors.

This includes support for the crazy 2n+1 syntax you can use with selectors such
as :nth-child().

CSS selectors: doing what XPath already does using an even crazier syntax,
because screw you.
Corrected docs of the parse() helper method.
Removed custom AST::Node class.

Since this class did nothing other than extend AST::Node we might as well use
the latter.
Removed useless ivar in the XPath parser.
Basic CSS parser boilerplate.

This currently only parses single node tests (e.g. just "foo").
Support for parsing multiple CSS node tests.
Added basic specs for the CSS parser.
Parsing of CSS predicates.

This adds support for parsing expressions such as "foo[class]".
Stricter lexing rules for XPath wildcards.
Support for parsing CSS operators.
Specs for parsing CSS node test wildcards.
Tighten up CSS predicate member rules.

CSS predicates can't contain full blown expressions, only attribute node tests
and operators.
Rename CSS "node operators" to "axes".
Merge the CSS "expression" and "path" parser rules
Basic support for parsing CSS pseudo classes.

This currently does not yet allow chained pseudo classes, nor does it allow for
pseudos such as nth-child(2n).
Use RSpec.shared_example vs just shared_example.