[gc] decruft -DMEMORY_DEBUG and DETAIL_MEMORY_DEBUG, add -D100

Check -D100 instead of DETAIL_MEMORY_DEBUG when -DMEMORY_DEBUG is enabled.
This way we can run -D101 and -D1 to get verbose and non-verbose GC tracings.

Add new MEMORY_DEBUG_DETAIL_2 macro for fprintf helpers all over.
Move common panic_failed_allocation into gc_private.h, maybe the other
common gc memory funcs also to save space.
Print avail sysmem on startup with -D1.
GH #1108
[core] enable Interp_debug_TEST and flags with flag combinations

Now you can check for multiple flags, e.g.
if (Interp_debug_TEST(interp,
       PARROT_MEM_STAT_DEBUG_FLAG | PARROT_GC_DETAIL_DEBUG_FLAG))
Was used only for single flags, so no changes for existing code.
Document the single flag limitation for the left-over trace_flags test.
There's no -t flag combination, like verbose yet.
[cage] unconst IO_VTABLE * vtables, -Wcast-qual cannot be suppressed

see e.g. https://stackoverflow.com/questions/13249756/explicit-ignore-warning-from-wcast-qual-cast-discards-attribute-const#comment38552597_13253997

2 remaining -Wcast-qual warnings for legacy API.