BACKPORT: changes from 1.51 and 1.52:
1.52: The copy() method now does not copy values listed by the noinherit()
method (e.g., correct_ans, test_values, etc). This resolves bug #1528.
1.51: Allow the perlFunction method to produce functions that return
formulas when not all the variables are used as arguments.
$f = f(2);
would produce the equivalent of
$f = Formula("2+y");
Using the substitute method is more efficient, but this now does the
right thing rather than generate error messages.