various XS optimizations and a leak fix

vutil.h
-restore 5.10 and 5.12 compatiblity, S_croak_xs_usage came from Win32::API

vutil.c
-add PERL_NO_GET_CONTEXT to both translation units
-remove all hv_exists/hv_fetchs patterns and replace with 1 hv key getter
-remove all SvIV(*av_fetch patterns, av_fetch is called multiple times in
 the SvIV macro
-in new_version, directly use version * directly, savepvn isn't needed and
 doesn't convert character encoding either
-in upg_version, recently this function was converted to use SAVEFREEPV
 this savesvpv was missed

vxs.inc
-make xsub details table smaller in the binary by getting rid of the NULL
 entries, version doesn't use prototypes, but in CORE other xsubs use them
 in this table
-in VXS(version_new) don't read PL_stack_base more than necessary
-in VTYPECHECK, make this macro eval the SV* only once. ST(123) was multi
 evaling/multiple recalcs of it, also this now makes POPs safe to pass.
-in VXS(version_vcmp) take advantage of sv_2mortal's return val for smaller
 machine code
-because of XSUB details table, ALIAS:/XSANY can't be used, factor out
 VXS(version_is_alpha) and VXS(version_is_qv), and make the XS stubs
 tailcall friendly on regcall ABIs
-in S_version_check_key use SP semantics instead of ax, less machine code
-in VXS(version_qv) don't read PL_stack_base more than necessary, this fnc
 could be further cleaned up, since it has obvious signs of xsubpp and hand
 written portions