Detabardize - standardize code/tests on 2-space indent

Zero functional changes (examine under git diff -w)
fix tests failing on 5.6.x due to differing DESTROY semantics
"Modernize" code a bit

Turn on warnings everywhere (5.6 being lowest target)
Silence experimental warnings in given/when tests
This is no longer a TODO, but given the experimental nature not ready to be documented

https://metacpan.org/module/SHAY/perl-5.17.3/pod/perldelta.pod#given-now-aliases-the-global-_
We already explicitly save the value of $@ - local()ization is not needed

511c05cae introduced an extension to try{} - unlike in an eval{} a try{}
block has access to the previous value of $@. Since we already have a copy,
we can do a manual restore of $@ instead of the expensive local() mechanism.

Results in a 7% speedup of bare try{} on 5.16
Fix broken link to slides (RT#55659)
Sanity check erroneous invocations
Clarify exception on unexpected try() arguments
correct prototypes in docs
Make sure users are properly notified of (useless) exceptions in finally blocks

It is possible to rewrite Try::Tiny to invoke the finally blocks without
the use of scope guards, however to do this an extra eval frame around
catch will have to be introduced. Furthermore code in the wild may rely
on the "ignorance" of a finally() exception.

In short - the proper fix may no longer be feasible due to backcompat
issues, therefore the current warning seems like the only feasible
compromise.