Loosen the extent to which we trap and report exceptions.

A few are thrown by javac internals - most notably com.sun.tools.javac.code.Symbol - that javac knows how to deal with.  Or at the very least, trapping these and reporting them as build errors on elements is misleading.

So in the above case, pass the exception through.  The code change uses a set, to leave room for adding others when and if they show up (whether from javac or other sources, like ecj, etc.)

This change also alters the wording of the reported error when we don't pass through, so it's clearer this isn't coming from a Dagger validation failure, but a deeper cause.