Refactor specificity

Don't use a value, but compare the 3 values in a seperate class. And don't add the order to the specificity, only use it when the specificity is equal. This will prevent cases where the specificity is increased too much because many rules. This replaces #56

This is following the [spec](http://www.w3.org/TR/selectors/#specificity) better, so that 2,0,1 > 1,12,1 (vs 201 < 221, which is incorrect)

/cc @stof What do you think, something like this compare also for the CssSelector component?
I tjhink this logic does not work properly for ``#id.class1.class2::hover`` for instance. And it also break for ``[data-type="foo bar"]``.

In the first case, it will set it to ``1, 0, 0`` instead of ``1, 2, 1``. In the second case, it will set it to ``0, 0, 2`` instead of ``0, 1, 0``