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

Fixes regression from f018c601b407592956dd56cd41a5edfe332d55d2, refs #17955.