Add a VM argument to VirtualMachineEnvironment::genUUID()

* We need it since random generators (used for UUID generation)
  are not thread-safe (it is undefined behavior to make 2 calls
  in different threads at the same time) and it would yield
  contention and complexity to introduce a lock around it.
* Also, random number (and UUID) generation should be independent in each VM.
* It is a bit confusing to have two genUUID() in VM and BoostVM,
  but since the first is not virtual the call path should be clear.