[cage] Fix c++ Wcast-qual and -Wunused-result, PTR_UNCONST

in the io and string api.
We really need to bypass the const qualifier for our io api.
Add a new PTR_UNCONST macro.
[cage] more --cage fixes

undeclared snprintf
duplicate declarations
unused vars
[cage] more --cage fixes

remove some -Wunused-variable and unneeded function calls, io cleanup
fix one logical autoflush error in Parrot_io_open
add pbc_merge_annotations to pbc_merge,
remove some dead functions: setup_imcc, do_a_better_error_message,
  Parrot_pcc_add_invocant
use switch for gc_get_info (I trust the compilers not to overdo it)
[cage] more --cage fixes: ops, imcc.y

remove unneeded variables and signature function calls
regenerate the parser,
[io] re-enable async io on linux

linux is Obsolete (not POSIX compliant)
http://sourceforge.net/p/predef/wiki/OperatingSystems/
[cage] remove more redundant duplicate declarations

in dynpmc: see GH #741

src/vtables.c: Parrot_gbl_initialize_core_pmcs is already declared now
[cage] more --cage fixes: interp

remove unneded num_thr
[cage] undo instable PTR_UNCONST, fix codingstd
[tools] add gc_gms_is_pmc_ptr/trace_mem_block to parrot.supp valgrind

suppressions
Merge branch 'smoke-me/cast-cage'
ChangeLog for smoke-me/cast-cage merge