Undo workaround for the m0 c implementation. This allows the c and perl implementations to both pass the m0_poke_caller test.
Use a similar strategy as the callframe storage, store each constant as either a uint64_t or a pointer to something larger. This gives integer & floating point constants value semantics and strings pointer semantics. This allows the c implementation to pass all tests using a single deref call instead of the double deref previously required for constants with value semantics.
If it's not specified, operations on the call frame registers will be implementation specific.
The spec says "The current call frame is passed as the first argument to all op functions. The remaining three bytes of the op are passed to the op function directly." Since the interpreter is accessible through the call frame, remove the interpreter argument and use the call frame.
This make the hash test pass for the c m0 implementation. All existing m0 tests pass for the c implementation.