Caching and Performance Improvements

Major updates to our ability to cache and statically analyze certain virtual instances
a/b are just the left/right hand side of the XPathEqExpr. Agreed that a and b are not great names (left and right would definitely be better). Would possibly be good to do some renaming of xpath internals at some point. I'll likely have to do a bunch of reworking of that code later this month and will try to do a pass.