Feature execution state

* Create ExecutionState
* Extract CPU interface
* Use CPU Interface for tests
* Do not use anything except core for tests
* Add CPU constructors
* Modify execution, parameters are resolved to operands in the CPU now
* Change a whole bunch of lines and stuff
* Unit Tests are passing 100%