Adds Number struct with value
Adds addition & multiplication classes
Adds Reducable trait
Extends main file with more samples
Refactors existing nodes as enum with a couple of functions

* extends the main class with a few more outputs
Renames folder with small step library code
Adds reduce function to Node

* simple while loop reduces a more complex expression in main file
Adds a Machine that runs an expression until it's not reducable anymore
Extracts Machine code to its own mod class
Adds Boolean type
Adds LessThan expression
Simplifies creation of expressions in main
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
Refactors handling of Machine

* adds better constructors to Machine
* function `run` steps through when reducing expression
Merge pull request #1 from justahero/small-step-semantics-example

Small step semantics example