Specs for various XPath evaluator helper methods.
Better conversion of types to numbers.

The XPath number() function should also be capable of converting booleans to
numbers, something it previously was not able to do. In order to do this
reliably we can't rely on the string() function as this would make it impossible
to distinguish between literal string values and booleans. This is due to
true(), which returns a TrueClass, being converted to the string "true". This
string in turn can't be converted to a float.
Raise for non node sets in the sum() function.

According to the XPath spec this function *can only* take node sets, nothing
else. Lets actually enforce that.