Bug fix for 18201

The compare() implementation for _DateTextBox was not doing a true-to-the-instance value comparison, thus breaking the round trip. The solution was to fix the compare() method so that:

val = new Date(); // (or whatever)
widget.set('value', val);
rVal = widget.get('value');
widget.compare(val, rval) == 0;

Along with this fix is a regression test to ensure the round trip for TimeTextBox's continues to work.

Fixes #18201