update tasks
rewrite evaluator

The evaluator was very broken, and implemented incorrect behavior.
Reimplement it in terms of the grammar and normal XPath expectations.
Add tracing logging throughout the evaluation process.  Simplify
evaluation to properly scope dependencies and reduce function size.
Remove inplace nodelist mapping function and flatmap functions.