Exclude all problematic pseudo-classes from rule-merging

Here's the patch to exclude all seven problematic pseudo-classes from rule-merging as discussed in #390.
@silverwind These look good. Could you make a change and also add testcases for `:first` and `:first-child`?