Add support for bare and multiple :not() functions in selectors

This enables parsing of ".flash:not(.error):not(.warning)" and
":not(p)".

This entailed a huge change to the parser, but I think the parser should
be a bit more robust now by not declaring :not a special case.
Merge pull request #887 from Mange/double-not

Add support for bare and multiple :not() functions in selectors