Make navigation more generic.
* allow navigating starting from other than the root
* allow navigational context info to be any number of args of any type, not just a single map (this means that we can no longer tell before starting navigation whether we have all the necessary info - error will happen at the point where info is missing)
Allow nil for starting point, will revert to the tree root.