added factory methods to create VariableTypes. Value now supports add, subtract, multiply, division and equals operations for all VariableTypes except char (add op is broken). Added extensive tests for value operations