StderrLogService: recurse over all causes of Throwables

When an exception is cause by an exception that is caused itself by
an exception, we still want to see all of them.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
ServiceHelper: do not report problem twice

Originally, we had a warn() and a debug() (the latter including the
stacktrace) when a service could not be instantiated. But the warning
was not helpful enough, so we added the stacktrace to the warning,
too. But then the exact same things were reported by both calls,
so let's remove the debug() call.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Fall back to StderrLogService in ServiceHelper

There was too much code there doing exactly what the StderrLogService
was designed for.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
ServiceHelper: do not try to instantiate interfaces

That would not make sense anyway. Instead, give the user a helpful
information *why* the service could not be instantiated.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
ServiceHelper: warn loudly when *no* classes were found

Most likely it is a serious error when no classes were found, and even
more likely it is the context class loader which is not set correctly.

Let's issue a helpful warning in that case (because this developer
spent way too much time debugging this very same issue not only one,
not only two, but three times in total! Well, no more!).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>