[cage] fix --debugging and some of the latest SHIM/UNUSED decl

make headerizer and --debugging tested.
TODO: UNUSED should be switched to SHIM in the decl.
Makefile: fix testOx comments, replace testOp with testOc
fix clang optimizer increment issue GH #774

have to use volatile scratch registers in Parrot_Integer_increment_orig to avoid
skipping overflow sementics: -1 => MAXINT
fixes t/pmc/bigint.t test negate_min_integer
[cage] Revamp GH #957 pull request

Throw unknown key type exceptions in default case
Remove some compiler warnings (tested even with clang++)
Added even the strcmp case exception even if it makes not much sense.
Harmonize "Wrong type of value from annotation" exception messages.
Most work done by Paul Cochrane

In Makefile moved touch up to align the gnu replaceble testutils
so that I can delete the superfluous slow $(PERL) -MExtUtils::Command -e
variants manually more easily.
cache iterators in encoding_find_*cclass

encoding_find_cclass and encoding_find_notcclass can now cache an iterator
between calls, because there is at least one usage of the pattern "scan a
whole string for newlines" in rakudo.

for utf8 files, like Actions.nqp and Grammar.nqp, it used to take 5s and 2s
respectively, now takes 2.4s and 0.9s respectively after the patch.

Benabik:
My only concern is that there's a chance of false positive on the cache

find_cclass called
string GC'd
new string allocated at same address
find_cclass called

This seems unlikely, but heisenbug paths like this are really hard to track
down if tripped over.  We could add the cached iterator directly to the
string, adding two words per string that we can try to reuse any time
STRING_iter_skip is called.  (Probably involves an API change:
STRING_ITER_AT instead of STRING_ITER.)

And now that I think about it, caches can be very problematic in threaded
environments.

See https://github.com/parrot/parrot/pull/1027
[docs] pod for the trace runcore
[cage] annotate cachegrind results

clang--3-4++ =O3:
valgrind --tool=cachegrind -- ./parrot -O2 examples/benchmarks/oo1.pir
qcachegrind cachegrind.out.*

also fix a c++ cast error from latest src/string/encoding/shared.c patch