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
Pass an interface instead of a pointer to an interface to the XPathFunction; also reverse the order of arguments before calling the function
Run go fmt
Remove unneeded if check around for loop
Correctly handle nodesets in XPathObjectToValue
Merge pull request #44 from jbowtie/xpath-variables

Better XPath support, adding xpath variable resolution.