As was recently brought up in D139006, not using --function-signature by
default can cause tests to fail unexpectedly due to not matching "define"
in the function declaration. The referenced review tried to fix this but
was ultimately reverted due to the test churn that it causes.
This is an alternative approach, suggested by @nikic in D139006 that
defaults to --function-signature for new tests but keeps existing ones
unchanged. The implementation is somewhat ugly, using magic constants
for the --function-signature flag default values, but I can't see a way of
avoiding this.