Small optimization to selectors: Use frozenset instead of set
Added support for parameters in selectors.

Usage:
  some_tree.select('some_elem {param}', param=a_tree_to_find)

OR:
  some_tree.select('some_elem /^{re_param}$/', re_param='some_text')

Of course both can co-exist in the same selector.

(There was already some support for the latter, but this is a more
"official" API, that I plan to keep)
Added :is-first-child modifier
Added method: STree.leaves_by_pred(..)
Marked as version 0.5.1