Adds an Environment to store variables in
Refactors node creation methods
Refactors Node creation functions for Add and Multiply
Refactors Node creation functions for Boolean and LessThan

* fixes include warnings
Adds Variable that can be reduced with a given environment

* Environment accepts adding mapping and can be used to fetch variable
* automatic conversion from static str to String