Use matching parent constructor
Move timedOut to local variable
Remove redundant exception detail message prefix
Allow FailEvent throwables to be instantiated at time of failevent occurrence
Ignore all exceptions in ForwardingFailPollEvent
Reimplement filling in stack trace at time of failure
Use Function<AssertionError, Throwable> for custom throwables
Add detail to assertion error, retire FailEventException
Retire unused constructor
Remove FailEventExceptionTest since FailEventException is gone
Improve describedAs behavior of HamcrestCondition
Throw exception from multievent with event's exception as cause

This prevents us from losing stack context information from the
exception that was otherwise thrown in a lone thread.
Update MultiEventTest for new behavior
Improve exception messages
Throw inner event's exception with updated stack trace in MultiEvent
Update javadoc
Update TimeoutException detail message
Add Experimental annotation
Correct toString for ForwardingFailEvent, MultiEvent
Fix infinite recursion (this is why functional programming is scary)