[WIP] Support ::nth(n), ::first, ::last pseudo selectors (fixes #842)

Known limitation: you cannot write something like `div > p::last > ul::first` because cssselect doesn't support non-terminating pseudo elements


strictly speaking, shouldn't it be `:first`, `:last` and `:nth-child()` if we are going to use pseudo-classes and not pseudo-elements for this extensions?