Restrict single-VM assumption to main() and boostenv.cc

* BaseSocketConnection and TCPAcceptor have a new VM field
  and use a VM as the constructor argument instead of a BoostBasedVM.
  The _environment field is kept for now as it is much easier
  considering the many lambdas in these class methods.