Added NodeTransformer interface which NodeConstant implements

Node now has a .getNodeTransformer() instead of .toNodeNumber()

This commit has multiple compiler errors
Implemented NodeVector transformer

NodeConstant should not implement transformer, instead Node.getTransformer
(renamed) should be used.

Renamed existing NodeVector.toNodeVector to .toVector as Vector to avoid
ambiguity and Vector is also the return type.
Refactorings throughout the nodes and operators packages
to use NodeTransformers instead of the old .toNodeNumber()

Each Node class now has its own private implementation of the NodeTransformer
interface which gets lazily instantiated in the overriden .getTransformer()
method from Node.