[pmc] start with resizablepmcarray unshift optimizations

using a max offset 8, as in nqp/qrpa. See GH #1152
Here offset is still const 0.
[pmc] rpa trace: do_shift(INTERP, ...)

need interp for tracing, slow or fast
[pmc] rpa enabled shift optimizations w/o splice

resizablepmcarray shift,unshift,resize,push,pop look now good.
just splice is missing. GH #1152
[pmc] rpa: trying to fix splice WIP

Not offset optimized yet. And something still fails.
GH #1152
[pmc] rpa: WIP some more fixes, but still failing
[pmc] rpa: remove old code without USE_OFFSET

Still one invalid access of freed data in push_pmc, and
invalid read in shift_pmc.
valgrind ./parrot_old -o runtime/parrot/library/HLL.pbc ext/nqp-rx/src/stage0/HLL-s0.pir
[pmc] rpa: fix 2 cases: shift+push offset overflow

also:
* fix non-debugging TRACE_RPAd macro
* add some UNLIKELY hints
[pmc] rpa: fix defined, no throw. add get/set trace with -t1
[pmc] rpa: specialize sort+reverse, need offset

also add offset to append
add more notes to fixedpmcarray vtable docs
[pmc] rpa: optimize splice shrink fast on offset

if there is enough room at the left to fill in the elements
from from, adjust offset and jump to the fill routine

this optimization is not present in qrpa, and executed e.g.
in data_json.
[pmc] rpa: optimize splice resize a bit

add TRACE_SPLC
[pmc] rpa: fix resize move with offset

before 1,32,8 => only 32. after: 33
[pmc] rpa: fix splice shrink fast, add tests

test rpa coverage and add all missing tests
shrink fast has a wrong offset, test splice_shrink_fast()
add tests for resize off empty and resize off move, the 2 fast
  variants with existing offset.
remove shift slow case, this is invalid, add assertion. this is caught
by size == 0 and we cannot have an offset bigger then the threshold.

remove unnedeed pmc/pmc_arrayiterator.h from src/events.c
[pmc] rpa: fix visit

we need an offset for visit, we cannot use the fixedpmcarray
method.
[pmc] rpa: fix resize with offset optimization

we moved the wrong items, and had wrong slack overwrites.
Add testcases.
[pmc] rpa,fpa,imageiofreeze: various minor refactors

* Access attr struct more directly.
* Fix one syntax problem with UNLIKELY with non-std compilers.
* Optimize *1.5 by using integer math.
* Change rpa overallocation to use 1.5, not 2. This is better to handle
  free blocks.
* Always fill slack space, as we extend rpa via set. In a better version we
  should fill the slack space only when needed: only on set.
* Change push_{non-pmc} to use push_pmc and not set_keyed_int.
  push is offset optimized, set not.

Still WIP. object was probably modified after being freed
[pmc] rpa: optimize slack filling with PMCNULL

Only fill the rest with PMCNULL when necessary, i.e. when
we set an index > size, the intermediate indices between size and index-1.
This saves a lot of slack filling code cycles.

Error on delete oob.
[pmc] rpa: optimize delete_keyed_int

on index=0 just bump the offset as with shift,
else memmove en-block, not item by item in a loop.

This passes now most rpa related tests, just reverse has a conflict
with fpa. with reverse renamed to nreverse make test and benchmarking
is possible.
[ext] fix the remaining rpa reverse problem

nqp ResizablePMCArray provided its own reverse method, which is now
not needed anymore. We use the better pir method instead.

Also found a syntax problem in parrot_old

Remaining todos:
t/op/lexicals.t                           (Wstat: 256 Tests: 54 Failed: 1)
  Failed test:  27
t/compilers/pge/p5regex/p5rx.t            (Wstat: 0 Tests: 960 Failed: 7)
  Failed tests:  172, 420-421, 442-443, 869-870
t/src/extend_vtable.t                     (Wstat: 512 Tests: 134 Failed: 2)
  Failed tests:  34, 37
[core] apify -t20 as PARROT_TRACE_ARRAY_STATE_FLAG

Only available without --optimize, i.e. #ifndef NDEBUG