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?
however, the first fix is indeed to separate the specificity and the order handling for the comparison, which is making the bug much more likely to happen.