Carp: paranoid sub lookup

Carp avoids autovivifying stashes when seeing whether a sub like
utf8::is_utf8 or overload::StrVal exists.

Its logic was slightly faulty, in that it did not take into account
that the existence of $::{"utf8::"} does not indicate the presence
of a typeglob in that element.  It could have been created due to
autovivification.  It also failed to take into account that $utf8::’s
HASH slot might be empty.  This would result in death.

In fixing this, I moved the common logic into a single function
and also took the opportunity to avoid multiple hash lookups in
a row.
regcomp.c: Silence compiler warning

This call to regclass_swash() is not using its return value, so don't
store it in a variable that is otherwise unused, which causes some
compilers to complain.
PATCH: [perl #119443] Blead won't compile on wince

This commit adds #if's to cause locale handling code to compile on
platforms that don't have full-featured locale handling.  The commits
mentioned in the ticket did not adequately cover these situations.
regularise test for Carp vivifying B stash

There's an old test to check that Carp doesn't vivify B:: despite
attempting to use B::svref_2object().  Turn this into the same kind of
test now used for overload::StrVal() and utf8::downgrade(), testing more
cleanly for stash vivification and also testing for GV vivification.
avoid package name "B" in Carp tests

[rt.cpan.org #76167]  For tests not relating to the B module, avoid using
"B" as a package name.
Start perl5200delta

just the template for now
List broken modules from #119125 in perl5200delta

so that we can track these all in one spot and close the various RT
tickets as we go.

I am only listing ‘high-profile’ modules, meaning those that have
at least 5 dependents (an arbitrary number picked by Jesse Vincent
some time ago).
Add perl5200delta to MANIFEST
podcheck.t: Skip perl5200delta

I would have to change the header to something other than
‘perldelta’, even though that is what the final document
will have.

I would also have to start adding modules to the known modules
list which will not have to be there in the final release.

That is more work than necessary, so just skip this file for now.
Don’t give unavailability warnings about our vars

Commit ce0d59fdd1c started using NULL to indicate nonexistent array
elements.  Since pads are AVs, they are filled with NULLs initially,
rather than &PL_sv_undef.

For ‘our’ vars, the pad entry is never actually touched.  Only one
piece of code was inspecting it, namely S_cv_clone_pad.  &PL_sv_undef
just happens to pass the checks that make sure the var is not stale.
However, we really should not be checking that at all if this is an
‘our’ var.

Even if we change ‘our’ vars back to having a &PL_sv_undef pad
entry, this fix should stay, as it makes the code clearer and makes
S_cv_clone_pad more robust.
For SDBM_File, stop EU::MM from generating its default subdirs rule.

The default subdirs rule creates a race condition with the rule that
Makefile.PL explicitly adds to generate libsdbm.a, which can cause parallel
makes to fail.
consistently escape args in Carp stack trace

Previously, an upgraded string argument would be wrapped in quote
characters but have all of its characters represented literally in
the stack trace, including control characters.  Also, the escaping of
unprintable characters for downgraded string arguments wasn't consistent
with Perl syntax: it used \x{} escapes inside single quotes.

The new way is that string arguments (except those that look numeric)
are represented as double-quoted strings, using correct Perl syntax.
Characters outside the ASCII printable range always get \x{} escaping,
whether the string is upgraded or downgraded.  ASCII printables that
require backslash escaping get it.  Where an argument is truncated
due to length, the added ellipsis appears outside the double quotes,
to avoid ambiguity with a string that contains actual dots.

Implementing this is complicated by problems with applying regexps to
upgraded strings, which are particularly a problem in the constrained
environment in which Carp must run.  This has previously inhibited us
from implementing correct handling of upgraded strings.  The problems
were all resolved in Perl 5.13.11, so from there on we can just use the
simple regexp implementation.  On older Perls upgraded strings now get
the same treatment, but implemented in a less efficient manner that does
not use regexps.

Non-string arguments, most notably references, are now are not represented
as quoted strings.  The overload::StrVal() representation is safely
distinct from other argument representations.  This in particular allows
distinguishing between an argument that is a reference and an argument
that is the result of stringifying a reference.
update autodie test for new Carp stack trace form
update copyright years for Carp dual-life release
release schedule: 5.18.1 is out and 5.14.x is EOL
release schedule: the rest of 2013 (except September!)
perlexperiment: ticket link for regex_sets
perlexperiment: ticket for :win32 pseudolayer
perlexperiment: ticket for pluggable keywords
perlexperiment: Unicode on EBCDIC is not backtracking