Unittest runner refactor and cleanup

* Removed code that has previously been reimplemented in the
  configurator managers.
* Moved all argparse argument post-processing logic from various
  methods to argument-specific argparse Action classes.
* Unittest Runner uses the TestEnvManager now.
* Removed old unittest-runner-specific test env manager
* TestEnvManager now sets defaults only on access.
* TestEnvManager now only sets OS env vars when finalize() is
  called.
* Made --result and --result-directory arguments mutually
  dependent.
* Fixed support for use of ~ in engine.config paths

Change-Id: If94e081677a2ef55dad6ec36cd6d8038436d3f30
Merge "Unittest runner refactor and cleanup"