Add root() function for calculating Nth roots (JENA-507)

Also cleans up some of the other function implementations
Add more Leviathan functions (JENA-507)

- cartesian() - 2D and 3D cartesian distance
- sqrt() - Square root
- ten() - Raise 10 to a power i.e. 10^arg
Add various additional Leviathan Functions (JENA-507)

- pythagoras() calculates the length of the hypotenuse of a right
  angled triangle given the lengths of the other two sides
- degrees-to-radians() and radians-to-degrees()
- cos() and cos-1() i.e. acos

As part of this commit some improvements were made to Loader to deal
with class name strings that contain illegal characters to the Java
language specification.  So for example degrees-to-radians would be an
invalid Java class name so it gets escaped to degressToRadians and the
loader looks for that class instead.
Add javadoc to Load explaining escaping scheme used (JENA-507)
Add remaining Leviathan trigonometric functions (JENA-507)
Add Leviathan hash functions (JENA-507)

These are both superseded by SPARQL 1.1 functions but are included for
completeness