source_string: omit ending nil/undef in source dumps

message (a nil nil) => message (a )
p2 closure_string: use sub instead of function

as function name in source dumps
potion_strcat: added (for syntax-p5.g)
p2: add assigndecl, over-simplified listel, hashel