Use std::atomic values for inter-threads fields of VM.

The three flags that can be set by the external world
(preempt request, exit-run request and GC request), as
well as the global reference time, are now implemented
with C++11 atomic values (instead of 'volatile', which
as at best a poor substitute).