add -d and --compile=backend support

-d adds DEBUG opcodes with lineno to support breakpoints (no int 3 and gdb yet)
--compile=backend tries to load a compile-<backend> code and calls the dump<backend> method then.
-Dc debug compiler transformations

Does not work yet
combine P->flags and exec, always use yydebug, check AST_DEBUG early

P->flags (and yydebug ie G->debug) is now a combination of
exec_mode_t, syntax modes (18-63) and the debug flags.
AST_DEBUG has the AST embedded (multi-line ops), so unpack the tree
beforehand.
seperate syntax modes from Potion_Flags (debug flags)
debug+compile: fix p2
compiler: add options --compile=backend,opts...

fix potion_send load and dump args, use options

test/classes/sub.pn broken
use potion_load directly

not found compile-%s needs to return nil,
potion_find_file accepts str_len=0 (questionable)
use potion_strcat instead of potion_str_format
pass dump options as PN string, not char*

also export dumpbc method
compile: add Source class for the c compiler, light EXEC_COMPILE refactor