VM changes

The VM has undergone some significant changes in order to enable precise garbage collection (e.g. generational GC), be better prepared for multi-processor systems and be easier to port to other platforms. These changes will be part of the 0.1.5 release.