NodeFunctions's transformer converts itself to vector form

When the .toNodeVector of a NodeFunction's transformer is called, a vector
containing the function itself is returned instead of a numerical evaluation
of the function.
Converted NSolve operator to a VectorOperator
Removed duplicate code in NSolve

Fixed bug in VectorOperator where NodeFunction was being evaluated to a
number causing an exception. Instead the type of the object is tested to see
if it is a NodeNumber.
Conveted Solve operator to a VectorOperator

Modified exception message in VectorOperator if argument length is invalid.

Much duplicate code has been removed in both Solve and NSolve as a result
of them becoming VectorOperators.
Modified NodeFunctions transformation to a NodeNumber

If the argument length of the function is greater than zero (the function
has arguments) then an exception is thrown as the function cannot be
implicitly converted to a number without a value being provided for the
argument.

This modification improves the error messages recieved as otherwise
parse exceptions would be thrown when the function could not be evaluated.

Fixed #1