Add new callbacks for the new esilvm

The purpose of this struct is to provide a way to add more instructions to the VM, which may be important to fully implement the emulation loop. But i think that we can remove the in and out fields. Because the function will just pop and push them from/to the stack. and the current implementation doesn't requires this to be specified anywhere, if we need them later we can add those fields. but not now