Create "core" package to facilitate meta-programming

The "core" package contains infrastructure that should be shared
between concurrent and sequential symbolic execution frameworks.
Since these frameworks rely on meta-programming and compile-time
type inference, "op.h" and "eval.h" have been included into "core".