p2: parse sig defaults
signature default param:=value

does not compile yet
sig-default temp-work

use : as delim for default params, push value after
sigs fixup: msg, defassign, DEF_PSRC, unroll sig loop
more signature work, fail on lhs values, accept rhs values and types

fix some more potion_type_char types,
the sig tuple is still reverse (see -Dv for registers)
rename MESSAGE to MSG (ast and op)
signatures: improve and refactor sig_compile

add TAP test via TEST_VERBOSE=1 bin/potion-test
add more signature tests
move enum PN_AST to potion.h to help gdb
add potion_sig_string and use it throughout
add potion_syntax_error helper
add more PN_STR helpers
add DBG_c and -Dc support
refactor sig_compile for pipe

add done_testing to api tests
still not working
fix potion_sig_find to count only strings

but ignore string defaults. same logic as arity
add potion_test_proto to call sig_compile

vs yy_sig
fix string len of strcat and str_format
api test: more sig roundtrip tests

failing
type PNSource ->a[3]

statically declare the 3 a ptrs for each ast kid.
this is a bit different from the others, but helps
debugging the compiler a lot. and typesafety might catch dev bugs earlier
API change: potion_arity => potion_sig_arity

accept the PNTuple, not the closure. error on wrong potion_sig_arity type.
for closures we already have potion_closure_arity method, returning PNNumber.
doc: potion_sig_arity
doc: more potion_sig_arity
ast refactor: change AST type from PN to PN_SRC, potion_source/ast results not yet
sig: properly compile (transform) pipe and assign. x|y=o x=o x|y:=1
sig: disallow (=o) empty names for FFIs, better sig docs
default := sig (value v) => v, fixes potion_test_sig