Add TestReporter class for reporting only selected errors
Add TestReporter class for reporting only selected errors

To tell apart concurrency bugs from sequential bugs, we will (among
other things) search for multiple errors and compare these errors to
see whether the test failed for the same or for different reasons in
different execution paths.  Now, if it fails for the same reason in
every execution path or in the first N path but fails for a different
reason in the N+1th path, then we should not report same error over
and over again, but only once.

Hence this TestReporter class, which will only report Errors that are
given to it through its publishError(Error e) method (by
ResultCollector in the next commit).

TestReporter overrides some Error-querying methods from Reporter, such
that those methods will directly return the Error to be published, and
not Errors reported by Search.  It doesn't protect against Publishers
who call TestReporter.getSearch() and do the query themselves, but at
least we tried.

Signed-off-by: SZEDER Gábor <46692b1f0516358b02a6405518c0a52aa8fb3e94@fzi.de>

szeder/cJUnit-dev,szeder/cJUnit