Fatal.pm: Add a cache for CORE subs that can be reused

Some CORE subs can trivially be reused without compiling them into a
given namespace.  With this, the average load time of "use autodie;"
(after the first) is reduced by ~0.006 seconds (0.019s -> 0.013s).

Signed-off-by: Niels Thykier <niels@thykier.net>
Merge branch 'master' into cache_improvements
Check for lexical autodie leakage of utime (and other reusable subs).
Check for lexical autodie leakage of utime (and other reusable subs).
Update plan for version_tag.t
Merge branch 'master' into cache_improvements
Add Test::Spelling to test-recommends for travis-ci
Avoid running author tests for other modules in travis-ci.

Some testing modules we depend upon (such as Pod::Spell) have author tests which die
if their testing dependencies are not installed, rather than skipping. This results
in travis tests always failing.

We now set the appropriate testing flags only for our own test suite, not others.

This should also speed up travis run times.
AUTOMATED_TESTING and NONINTERACTIVE_TESTING set for entire install phase.
Merge branch 'master' into cache_improvements
Fatal: Conditionally compile the leak guard in caller namespace

Only compile the leak guard into the caller's namespace if the wrapper
sub is compiled into the namespace as well.

Signed-off-by: Niels Thykier <niels@thykier.net>
Fatal: Add lexical vs non-lexical CORE sub cache

Signed-off-by: Niels Thykier <niels@thykier.net>
Fatal: Fix two mistakes with core subs.

Mistake 1: store the cached CORE:: sub under the right "name" in the
table (else it won't be used).

Mistake 2: Return the "original" sub instead of the wrapped sub when
using the cache.  This fixes a problem with cleaning up the cached sub
when they are unimported (for whatever reason).

Signed-off-by: Niels Thykier <niels@thykier.net>
International documentation on cache imprvemets.
Test for a basic scope leak with rename (as well as open).
Merge branch 'master' into cache_improvements
Checking for filename sensitive leakguards being cached.

When we install a leakguard, it includes the file that 'use autodie' was called in.
If that leakguard gets cached, then installing the cached copy in a different file
will result in autodie no longer working there. The leak guard spots a different
filename, and immediately reverts back to using the CORE behaviour.
Checking for filename sensitive leakguards being cached.

When we install a leakguard, it includes the file that 'use autodie' was called in.
If that leakguard gets cached, then installing the cached copy in a different file
will result in autodie no longer working there. The leak guard spots a different
filename, and immediately reverts back to using the CORE behaviour.
Fatal: Avoid generating leak guards via string eval

Signed-off-by: Niels Thykier <niels@thykier.net>
'Sup Perl::Critic. That string eval? Yeah, we know what we're doing. :)