Restrict single-VM assumption to main()

* Add a VM argument to BoostBasedVM::run() and onPreemptionTimerExpire()
* Have only two places where we choose the vm:
  * in main() To start the initial VM
  * in BoostBasedVM() to register ModOS