Make the "Round Trip" of user input in TextBox classes more robust

Added a check to ensure that formatted values set into a TextBox by set('value', x);
are synonyms to the value specified, using the parse()/filter() methods.

This check skipped for cases where the for formatting of a value may have
been done asynchronously.

fixes #17955
Factor some repeated lines of code into a helper function, per Bill's feedback. Also added support for the places property in the constraints object