Refactor tcu::TestExecutor

tcu::TestExecutor used to provide all functionality required for
traversing hierarchy, executing tests, and even generating test case
lists. This change splits TestExecutor into three separate utilities:

 1) TestHierarchyIterator provides test hierarchy traversal.
 2) TestSessionExecutor provides test session execution.
 3) Utility functions for generating test case list files.

In addition TestCaseWrapper has been replaced by package-specific
TestCaseExecutor with TestSessionExecutor-managed lifetime.

Change-Id: Idb8090964a80cd64892231798710547e84e2989b
42 files changed