Account for sanitization changes properly in InputWidget

setValue() doesn't do anything if this.value === value, but with
sanitization it's possible for that to be true while the value in
the DOM is out of sync and needs to be changed.

The fix is to check for this.value changing and the DOM changing
separately.

Change-Id: I5f571445f5729f5477902c155a4ee9588b7194a8
Add inputFilter function to InputWidget

Change-Id: I6abc5281c70f01c26cfa181c37ed3240bda3eb3e