Adds better structured batch tests.

Use of async topic prevents individual fails from stopping subsequent tests from being run.
Version 2.1.0.
Add compatibility to programmability section too
Fixes #241 - incorrect handling of :not() selectors.

Since :not() can have multiple selectors passed in, e.g. :not(div,span),
commas need to be handled in a more clever way.
Adds faster selectors processing in advanced optimizer.

Selectors clean up is not needed in case of a single selector being processed.
Version 2.1.1.
New property optimizer