Fixes invalid selectors in unit-test.js.
Fixes parsing expressions so it does not break selectors parsing.
Adds longer escape markers to speed up searching.
Adds CSS tokenizer which will make it possible to further optimize content by reordering and/or merging selectors.
Adds basic optimizer removing duplicate selectors from a list.
Adds removing duplicate selectors (same body) within the same scope.

* Always preserve the last one as it overrides previous ones and intermediate overriding.
Adds merging duplicate properties within a single selector's body.

* Skips merging if two properties declared one after another, e.g. display:inline-block;display:-moz-inline-box;
* Respects !important when merging.
Adds merging adjacent selectors within a scope (single and multiple ones).

* Merges properties inside merged selectors too.
* Adds merging two adjacent properties when merging selectors.
Changes behavior of keepBreaks/-b option to keeping breaks after selector's trailing brace only.

* Old behavior allowed line breaks within selector, like 'a\np{}'.
Makes all multiple selectors ordered alphabetically (aids merging).

* Thus 'p,a{}' becomes 'a,p{}' which is semantically equivalent.
Adds merging adjacent selectors if body is the same.

* Skips if selector is vendor specific, i.e. matches /-(moz|ms|o|webkit)-/.
* TODO: Should not merge selectors if one selector may not be supported, e.g. :nth-child, :last-child, etc. - should be configurable and optional.