Create base class for GC memory
Call `destruct` virtual method directly
Fix debug output for vm::run
Store VM variables into VM instance

It is necessary to store VM variables,
because GC is occurred any time
and current running stack pointer is needed for GC.