subroutine signatures

Declarative syntax to unwrap argument list into lexical variables.
"sub foo ($a,$b) {...}" checks number of arguments and puts the
arguments into lexical variables.  Signatures are not equivalent to the
existing idiom of "sub foo { my($a,$b) = @_; ... }".  Signatures are only
available by enabling a non-default feature, and generate warnings about
being experimental.  The syntactic clash with prototypes is managed by
disabling the short prototype syntax when signatures are enabled.
Merge blead into zefram/purple_signatures
more torture tests for signatures

Based on tests supplied by Robert 'phaylon' Sedlacek.
more tests for signatures
Upgrade to threads 1.92
perldelta for 0ecf23179326, none needed for a5368aebf374
.gitignore: Handle cross-compilation files better
Avoid compiler warnings by consistently using #ifdef instead of plain #if
Fix the prototypes of some functions without context

Their prototypes are (void), but the implementation was ()
Added missing prototypes.

This was mostly for XS functions defined in the core, but also
for a handful of functions in the :stdio layer.
sv.c: Remove leftover ifdef from the %vd format
sv,c, sv_cmp_locale_flags: flags is unused if locales are disabled
t/uni/fold.t: use &LC_ALL with & to avoid strict errors
File::Spec: Mopre extensive fix for #120593

The original fix only handled '.', this one handles all relative
paths.
Eliminate stupid macro

Years ago I was lazy. False laziness. Today I undo that laziness. Sigh
Fix regression in floating mandatory string optimisation

In 304ee84bde82d4eee33b0d0ff03080b360eae72b I introduced a regression
where floating mandatory strings which were at known offsets started
being treated as though they were allowed "anywhere".

This patch fixes the bug, and adds tests to make sure it does not come
back.

See also discussion in Perl RT #121182.

https://rt.perl.org/Public/Bug/Display.html?id=121182
fix Module::CoreList::is_core default perl version
fix Module::CoreList::is_core version comparision
Allow blead to compile under some g++

Various platforms are refusing to compile blead with g++ [perl #121151]
This patch, suggested by Tony Cook seems to work.  There may be a better
way to do it, so I'm not closing the ticket, but this gets things
working again.
B.pm: Bump version