New property optimizer

Hi,

This pull request contains a new property optimizer which can perform advanced optimalizations on a CSS selector body.

It fixes the following issues:

* #173
* #134
* #168
* #164
* #184
* #190

NOTE: support for `font`, `animation`, `transition` and `border` haven't been added to #134 yet but all the enablers are in place.