t/testlib/Util: add deletion of $ENV{PERL_FUTURE_DEBUG} in init_warn_handler, because it also make Future warn about something else.
t/30-chained.t: tests in this file completes. (did not pass yet)
Important change in test cases: relaxed the condition in which failure is considered "handled".
BEFORE: Failure is handled if the user obtains the exception by get() or failure() method. followed_by()-type methods delegate failure handling to the chained future.
AFTER: Failure is handled if the user set catching callbacks by on_fail() or on_ready(). It does not care whether the exception is actually obtained by the user. followed_by()-type methods delegate failure handling to the chained future.

This change is due to difficulty of implementation. Because get() and failure() are called inside Future class itself too, it is almost impossible to know the exception is actually exported to the user.

In the AFTER strategy, there are false-positive and false-negative risks.

false-positive:
A Future fails but no on_fail() or on_ready() called on it, but its exception is obtained by get() or failure() and handled synchronously.
This should be treated as "handled", but the AFTER strategy thinks it's not, so it warns you.

false-negative:
A Future fails and on_fail(), on_ready(), or_else() or followed_by() is called on it, but you do nothing about the exception in the callback.
This might happen when you are interested only in the time the Future completes but not in its result.
This case should be treated as "not handled", but the AFTER strategy thinks it is handled, so it won't warn you.

So always be sure to check the results of the Future (by get() and/or failure()) in those callbacks.
Future::Strict: add some caveat as a reminder.
t/40-dependent.t: tests completes. found some bugs in the original Futures.
Rearrange test scripts a bit.