Added seperate runtime errors
-interpret(Node*) function now throws instances of:
	-Error (main not found)
	-RuntimeError:public Error (runtime error [e.g. array out of bounds])
	-SystemError:public Error (interpreter has entered invalid state)

-Now enforces that backend.hpp matches the source code, at the cost of incurring recompiles when frontend.hpp changes