const the core magic vtables

A remark in
http://www.nntp.perl.org/group/perl.perl5.porters/2006/07/msg115113.html
caused commit bc028b6b7f /
http://www.nntp.perl.org/group/perl.perl5.porters/2006/07/msg115116.html .
That remark is not true according to
http://www.nntp.perl.org/group/perl.perl5.porters/2006/07/msg115115.html
and
http://www.nntp.perl.org/group/perl.perl5.porters/2013/01/msg197318.html .
To save memory between perl processes, const the tables so the memory is
shared by the OS between perl processes.

b4 .rdata section of x64 VC 2008 miniperl 0x667EE bytes .data 0x3440 bytes
after .rdata 0x66FAE .data 0x2C80, 0x3440-0x2C80=0x7C0 saved,
based on the .data section size crossing a page boundary this saved 4K
of per process memory on Win64 miniperl.
win32/win32.c Perl_croak->croak_xs_usage

When this XSUB was written croak_xs_usage didn't exist. Now it does. Use it
so the error string is shorter in the perl binary.
optimize CLEAR_ERRSV

-gv_add_by_type is special only for non-GVs, and add AV to GV, otherwise
it is just assigning to GP slot (in this case through GvSV), which
CLEAR_ERRSV already did in another branch, so inline the gv_add_by_type
-dont compute GvSV multiple times, GvSV contains 2 derefs, after this patch
it will contains just 1 deref ("*svp") without an offset (deref without
offset is smaller in x86 machine code than deref with offset)
-SvREFCNT_dec_NN for efficiency
-move SvPOK_only closer to SvMAGICAL, this ensures SvFLAGS is read and
written only once, not 2 reads and 1 write, this is specifically for
RISC-ish cpus
-the goto clresv_newemptypv is because VC optimizer in -O1 didn't combine
the branches

perl521.dll VC 2003 before .text section size in machine code bytes
0xc8a63, after 0xc88e3
perlfunc: another alternative for enabling the "state" feature