Initial support in ComparisonUnitTestTarget for execution of programs

Growing to become a base class for ExecutableUnitTestExecTarget.
Use more specialized classes instead of ForeignDependency
Add getters for stdout/stderr to ExternalPipedCommandJob
Use Logger.__call__()’s own formatting functionality
Extend ComparisonUnitTestTarget into a full replacement for ExecutableUnitTestExecTarget
Merge ExecutableUnitTestExecTarget and ComparisonUnitTestTarget into UnitTestTarget

Now a single class is able to perform any combination of execution of unit
tests, filtering of files/outputs and comparison of files/outputs.
Improve exception messages