Added a routine to trap errors in a function call. I've needed this
for a long time, and got tired of working around the lack by hacks
involving PG_restricted_eval, which can't handle local variables from
the calling function. This addition is still safe because it is
passed code (not a string) and the code is already compiled in the
safe compartment, so it can't include the disallowed commands.
Now I need to go back to remove the hacks from the various pg/macros
files where they currently exist.