ThrowablesFactory: .addSuppressed() the Throwable argument on generation failure

We want the user to know at least where its lambda failed if the
RuntimeException instance cannot be generated. Still set the Throwable of
.invokeExact() as the cause, but also add the (lambda-issued) Throwable as a
suppressed exception so that the user knows what happened.
New ThrowingFunctionalInterface interface

Allows to factorize common operations for all Throwing*.