toke.c: Reorder declaration

This is in preparation for the next commit.
toke.c: Remove redundant checks

This code is redundant, as the whole string has been checked earlier for
valid utf8ness, or we assume that the internal Perl handler, charnames,
is correctly returning valid utf8.
toke.c: Don't force \N{} into utf8 unnecessarily

regcomp.c no longer requires everything containing \N{} to be in UTF-8.
I'm not sure of the exact commit; it might even have been in 5.16.  But
it was done by the time 86e88272fdabc40e3b168a3cc43af5e86284d01b was
done.

Therefore we can remove the temporary code that forced utf8, and replace
it with code that handles the non-utf8 case.

Note that outside patterns, \N{} still forces utf8.  This is so that
Unicode semantics will be imposed on the string it resides in, no matter
how it is used.  Patterns have a flag that indicates Unicode semantics,
so don't need to be in utf8.
toke.c: White-space only; no code changes

This indents a newly formed block, and changes one other line to line up
better.
Even more regexp charclass leaks
Increase $Env::VERSION to 1.04
Env.pm: Fix splice in list context

It was passing an extra argument to splice, causing splice @PATH, 0, 0
to append ":0" to the environment variable.
leakfinder.pl: Many more exceptions
[perl #43077] Make goto &sub leave @_ alone

It is a little tricky, as we have to hang on to @_ while unwinding the
effects of local @_.
fix hash order dependency bug in new Module::Corelist::deprecated_in()

The code was doing

    $version= List::Util::min(keys %$versions);

which introduces a hash order dependency as min() returns either the first or last
(i didnt check which) of the lowest items in the list, and considers 5.011000 and
5.011 to be equivalent. Depending on the hash order it would return
either one. Hash randomization revealed this bug immediately.

Changing the function to use List::Util::minstr() eliminates the
dependency.

    $version= List::Util::minstr(keys %$versions);
PADRANGE: don't assume targs are contiguous

Normally in something like my($x,$y,$z), the 3 targs are contiguous;
however eternal modules like Function::Parameters can break that
assumption, so don't assume it.
rmv context from Perl_croak_no_modify and Perl_croak_xs_usage

Remove the context/pTHX from Perl_croak_no_modify and Perl_croak_xs_usage.
For croak_no_modify, it now has no parameters (and always has been
no return), and on some compilers will now be optimized to a conditional
jump. For Perl_croak_xs_usage one push asm opcode is removed at the caller.
For both funcs, their footprint in their callers (which probably are hot
code) is smaller, which means a tiny bit more room in the cache. My text
section went from 0xC1A2F to 0xC198F after apply this. Also see
http://www.nntp.perl.org/group/perl.perl5.porters/2012/11/msg195233.html .
Add a test for the < and > commands together.
Test for the { and { ? commands.
Convert to a different quoting.

This was done so gvim won't be confused with the bracket-matching.
I'll report the problem to the perl.vim project.
Test the { * command.
Test the ! command.
Add a test for l -num.
Convert a perl5db.t test to DebugWrap.
Convert a test to DebugWrap.