Improve error handling

This addresses three issues related to error handling.

1) The TestFmwk will attempt to find the source location of a
message or error that is thrown by traversing the stack. If it
cannot find a suitable location it throws an InternalError which
hides the originating message or exception. The reason this
happens in Android but not when running on the host is because
when this is running in Android the thread has no main method
on the stack which is treated as a catch all. This adds a couple
of specially named methods to act as a catch all to avoid this
issue.

2) The JUnit4 class ErrorReportingRunner used in
IcuTestGroupRunner does not support filtering so cannot be
filtered out. This takes a copy of that class and modifies it
so that it can be filtered out.

3) Some ICU tests log warnings when they really should be
failing, e.g. DataDrivenCalendarTest will log a warning when it
cannot find the data that drives the test. Without that data the
class tests nothing. This treats warnings as if they are errors.

This updates the icu-known-failures.txt file with information
about the 9 additional tests that fail when warnings are treated
as errors.

Change-Id: I3ac5cc2d420d2eac6d70563e75ed7cb7b1e2dc17
6 files changed