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
Fix typo in perldelta.pod

-----------------------------------------------------------------
t/run/locale.t: Rmv test that isn't generally valid

The return from setlocale() on a new locale is documented in Linux as
opaque, even though the Linux smokers we have return the name of the
new locale.  It turns out that VMS actually does return something
different, and this test fails there.  So, the test is testing for
something that just happens to be currently true on many of our systems;
hence isn't general, and hence shouldn't be tested for.

And, the test isn't necessary, as we can infer from the other tests in
the file that a locale passed via the environment actually takes hold,
as we do so for a locale which has a comma radix, and test that the
radix is correctly set.
merge basic zefram/purple_signatures into blead
perldelta updates