rewriting Signal to check function spec, updating pizco to use new signal (and fixing default 3 args when signal called through proxy