[pmc] minor optimization in Integer_multi_i_add_Complex

Deteced by Chirag++ and pmc2c.
Do not compute SELF.get_integer() twice and remove UNSUED(a).
Do the same for the default case below.
[pmc2c] inline gc write barriers into vtable methods

:no_wb detection of :manual_wb, allow RETURN(decl var) also for VTABLE methods

add_write_barrier() now calls Parrot::Pmc2c::PCCMETHOD::rewrite_RETURNS.
Also add automatic WB for 0 or 1 return statements in the method body.
Other need either a RETURN or :manual_wb or :no_wb annotations.

Set manual_wb for :no_wb and PARROT_GC_WRITE_BARRIER in --dump
Detect it now earlier, in the parser

Missing write barriers typically cause the following errors:
t/examples/shootout.t: 16 examples/shootout/regexdna.pir SEGV
t/op/gc.t
t/pmc/*.t
[pmc] partially use new WB markers
[pmc] GSOC start. arrayiterator :no_wb, removed unnecessary :manual_wb

Start of GSOC 2014 work. Task 1: improve GC write barriers.
See GH issue #1069
[pmc] callcontext: manual WBs for shift_pmc & shift_string
[pmc] key, task: manual WBs for shift_*, pop_*
[pmc] callcontext :no_wb and :manual_wb
[pmc] key WBs
[pmc] arrayiterator, callcontext, key, task: WBs
[pmc] capture, HashIterator, ImageIoThaw: WBs
[pmc] default, object, orderedHashIterator, pmcList, resizablePmcArray: WBs
[pmc] fix some mixed c99 declarations with generated WBs

DEBUGGED - ISO C90 forbids mixed declarations =
Solved by adding WB after declarations ; expected declaration specifiers before ‘:’ token
Solved by removing :no_wb attributes for the flagged functions
[pmc] task: WB related errors
[pmc] add RETURN and WB attrs to fixedintegerarray, fixedstringarray
[pmc] re-add some WBs to callcontext
[pmc] fix wrong C99 UNUSED macros and add a few :no_wb

class,imccompiler,key,namespace,nci,opcode,packfileview,parrotlibrary,
sockaddr,socket,timer