Restructured trace execution

Trace instructions are now actual functions which are evaluated with eval native instead of structs that have to be interpreted by a separate run-trace interpret function.