Always choose the exit code of the initial VM

* It is a simple and clear rule.
* In most situations, the initial VM will handle the results of the others
  and has the most knowledge about the global success.
* It supports the model of exiting with success
  when a failure of a sub-VM is not fatal (like in Erlang).
* It fits perfectly for the tests exit code
  when the initial VM perform the assertions.