Restore Storable support for 5.005 and (astoundingly) 5.004

It even passes all tests on 5.004.
Use magic rather than DESTROY to free memory in Storable's context.

Suggested by Leon Timmermans.
[perl #118139] Storable 2.42 - die in global destruction

Protect against SEGV during global destruction, e.g. when used
in DESTROY blocks.

[Part of a patch submitted by Reini. MANIFEST change added by the committer]
Tweak the new Storable destroy test, and the ChangeLog

Use Test::More instead of Test, as all the other tests now use Test::More.
Use 2-argument open to be compatible with 5.005. (Where it passes)
Close the test file before unlinking it.
Check the error returns of open and close.
Update the comment now that we have a better understanding of the bug's cause.

As the previous commit as applied had no 5.6 compatibility changes, remove
that note from the ChangeLog.
Edit ChangeLog, Bump VERSION before rebase/release
todo.pod: Class set regexp operations are done

but they are still experimental.
todo.pod: Don’t mention ‘make test.taintwarn’
perl5db.pl: Remove obsolete comment

The regexp engine is now fully reëntrant.
[perl #118839] Make ‘n’ debugger cmd respect lv subs

The ‘n’ debugger command, which is supposed to step over subs, was not
stepping over lvalue subs.

This is a regression from 5.8, but 5.8 was worse.

This bug did not occur in 5.8 because there was no mechanism back then
for handling lvalue subs specially (via DB::lsub), so assignment to an
lvalue sub was completely broken under the debugger.

Perl 5.10 introduced DB::lsub.  The implementation in perl5db.pl
contains these lines at the end of the sub:

    # Pop the single-step value back off the stack.
    $single |= $stack[ $stack_depth-- ];

    # call the original lvalue sub.
    &$sub;

The regular DB::sub does this:

        {
            no strict 'refs';
            @ret = &$sub;
        }

        # Pop the single-step value back off the stack.
        $single |= $stack[ $stack_depth-- ];

Notice how $single (i.e., $DB::single) is modified before and after
the sub call, respectively.  The order is different.

There are two types of lvalue list context for lvalue subs.  (foo)=3
will allow sub foo:lvalue{@a} to return the array itself.  \(foo) and
bar(foo) will flatten the array.

So there is no way in pure Perl to capture the return value and have
it returned to the caller unchanged.  That is why DB::lsub has to call
the sub last of all (and have the context propagated).

The solution here is to use localisation to accomplish the assigment
to $single after the lvalue sub exits.
Wrap a long verbatim line in perlvar.pod
perldelta for #118305/88dbe4a
perldelta for 8922e438 (BmRARE/PREVIOUS removal)
perldelta for proto parsing changes
perldelta for 60041a0991 (split constant mangling)
perldelta for 948d23704 (index constant mangling)
perldelta for 310f4fdb24 (more index constant mangling)
perldelta: typos; consistency tweaks
perldelta for 9657ccb4f (@INC sub returning scalar ref)
perldelta for c72a4eedf (sv_force_normal at compile time)
perldelta for ee3818ca2c5e (Can’t coerce readonly REF)