Ensure that Date and DateTime CF values validate using current values

Date and DateTime CFs, for historical reasons, do not place their
defaults in the CF entry box.  Thus, and update where no value is
submitted for such a CF is equivalent to leaving that CF unchanged.
While the CF update code (see RT::Interface::Web line 3088) implements
this, the vlaidation code was not aware.  Thus, a "mandatory" date CF
would not pass validation if left unchanged.

In RT 4.0, this led to silent errors on the Modify page, and did not
prevent other updates.  In RT 4.2, thanks to 16ddc81, failing to enter
the current value explicitly into Date and DateTime CFs causes them to
fail to validate, and thus prevents all other updates of the page.

Alter the validation code to be aware that Date and DateTime CFs, if
empty, should take their values from the current CF values.
Make validation code aware that 1970 for date CFs is "not set"

For the purposes of CF validation, 1970-01-01 is equivalent to no OCVF
value.  Thus, entering 1970-01-01 as a Date value should only be allowed
if the CF is not mandatory.
Use defined-or instead of || to not lose "0" as a CF value for validation

The value "0" for a Date or DateTime CF is also equivalent to
1970-01-01, and thus invalid for mandatory CFs.  However, due to the use
of || rather than //, the CF was viewed as "empty" and thus was
validated against its _old_ value, and not the "not set" value.
Merge branch '4.2/date-cf-validation' into 4.2-trunk