Correct check for explicit undef argument

The int(shift||0) is backcompat with the old behavior that
Unix("") Unix(0) or Unix(undef) all ended up setting to 1970-01-01.
Copy and tweak existing Unix setting tests that worked using Set() to
have them test Unix() also so backwards incompatibility failures are
caught in the future.