Mark add_nodeset parameter as const
Extract predicate parsing function
Pull predicates up into the path expression while steps are reworked
Make XPath step into an XPath expression
Move XPath predicate to its own object
No need to pass a nodeset to the context, just the size
Set a new context node when incrementing the position
Parse multiple predicates in a row
Add TODO note about path expressions