Filter unchanged rows in Halloween transformed UPDATE

The motivator was to avoid (internally) deleting rows that are referenced by a FOREIGN KEY. Given the relative cost of the delete/buffer/insert triplet, this seems like a reasonable thing to always do.

There is one outstanding issue causing a test failure: double evaluation of the new expressions. This doesn't matter for literals, of course, but does for non-pure functions (e.g. NEXTVAL). Is there a simple way to avoid that?