Support for functional pseudo-elements

Some modifications to the parser to explicitly handle pseudo-elements and functional pseudo-elements.

XPath translation happens in `xpath_xxxx_functional_pseudo_element` and `xpath_xxxx_pseudo_element` which are probably not the best method name patterns.

A new flag in `GenericTranslator` is used to handle these customizations or keep original behaviour.

This is somewhat related to https://github.com/scrapy/scrapy/pull/176 (though I'm not sure that very PR will use pseudo-elements in the end)