Further clarify ExceptionalEvent javadoc...
Update gitignore
Associate throwable with condition in throwing().when() [fixes #2]

Although I'm not really crazy about this pattern:
- failIf uses instanceof conditional (meh)
- Redundancy between *WithThrowable and Exceptional*

Open to other ideas to keep API simple/flexible. I like that you can
just call failIf(...) without providing a custom exception, but maybe
this is a little bit of a trap because it's probably always a better
idea to give an exception to throw with throwing(...).

- Could add additional overloaded versions of failIf that accept a
  Throwable (but there's already so many...)
- ?
Refactor Event.failIf + rename Exceptional* to Fail* for consistency

While this adds two additional default overrides to an already crowded
failIf, the result nets less code that is more straightforward.
Ultimately, all of the overloads still come down to implementors having
to implement two versions, and now these take less lines of code and
don't rely on a conditional instanceof:

Event failIf(Event, Throwable)

and

PollEvent failIf(Condition, Throwable)