Fix sub_test env var setting

If a .execenv or EXECENV file existed, subtest would copy the environment and
add whatever things were in the execenv  to it and then pass that new
environment to the test. However if sub_test set an env var after that new env
was created, that env var was not passed to the test.

This just updates how subtest adds .execenvs or EXECENV entries to the
environment. Not it just adds those to a temp list and adds that temp list to
the real environment as it's passing it to the test