Better XPath support, including resolution of variable names

Adds support for setting the variable lookup callback in libxml.

Also handle evaluating XPaths that return numbers or strings.
Allow XPath to resolve functions as well

We solve the callback problem with functions by returning
exec_xpath_function as the C callback when there is a registered Go
handler; libxml2 puts the function name in the context before actually
invoking the callback, so we can do our actual dispatch then.
Handle boolean returns from EvalXPath

EvalXPath returns boolean values where appropriate. Adds
EvalXPathAsBoolean to support XSLT processing.

Update some documentation strings to note that function names are also
resolved.
Add some tests for xmlNode.EvalXPath