Refactor xenopath.xpath/lookup and its minions

Each lookup function now delegates to a new (and private) lookup*
function. The difference between lookup and lookup* is that the latter
accepts a QName object as the return type. This means that lookup-node
and its ilk can pass in the proper QName object instead of relying on
lookup to do the translation from a keyword.
Return a seq of nodes when looking up a nodeset