improve ParseXS RETVAL code gen

This patch avoids using ST(0) repeatedly in the OUTPUT section for RETVAL.
ST() include a read of global PL_stack_base. This read must be done between
every function call per C lang. XSRETURN also contains a PL_stack_base
read. sv_2mortal returns the incoming SV, the retval was previously ignored
and ST was used again. This patch reduced the number of ST references to
exactly 1, per RETVAL. The PL_stack_base reference in XSRETURN will be
optimized into the PL_stack_base reference in ST(0). Using the retval of
sv_2mortal allows the SV* to stay in a cheaper volatile register. In a
sequence of "RETVALSV = newSViv(RETVAL); RETVALSV = sv_2mortal(RETVALSV);
ST(0) = RETVALSV; XSRETURN(1);" RETVALSV never had to be saved around a
function call. Also ST(0) in a multi eval macro with different
function calls in it, will cause more PL_stack_base reads, so badly written
user supplied typemaps get optimized since a C auto that never had & done
on it is guarenteed to not change between function calls.

To produce cleaner C code, indenting cleanup is done, and if RETVAL is a
SV *, RETVALSV isn't created. Also if no additional boilerplate lines
like sv_2mortal are added, RETVALSV isn't created.

See [perl #123278] for details on machine code reductions that this patch
caused and also see
http://www.nntp.perl.org/group/perl.perl5.porters/2014/11/msg222342.html