Add support for TF to discover test cases specified in env vars

This change enables TF to locate test config files stored in test cases
directories, which are defined in environment variables:
ANDROID_TARGET_OUT_TESTCASES
ANDROID_HOST_OUT_TESTCASES

For native tests, PushFilePreparer allows the push source to be a relative path
and the preparer will look for the actual source file based on alt-src-dirs
option.

Bug: 35695098
Test: local run test
with ag/1923666

unittest:
tradefed.sh run host -n --class \
  com.android.tradefed.targetprep.PushFilePreparerTest
tradefed.sh run host -n --class \
  com.android.tradefed.config.ConfigurationFactoryTest
tradefed.sh run host -n --class \
  com.android.tradefed.util.SystemUtilTest
tradefed.sh run host -n --class \
  com.android.tradefed.util.FileUtilTest

Function tests:
For instrument test
tradefed.sh run \
  template/local --template:map test=HelloWorldTests  --test-tag testname \
  --log-level-display VERBOSE

For native test
tradefed.sh run \
  template/local --template:map test=hello_world_test  --test-tag testname \
  --log-level-display VERBOSE

Change-Id: I68da98e4f54ce2ef8b453a19e25b5164acb6ad94
10 files changed