Except ValidationError when calling widget.read()

If the data type is invalid, a ValidationError will be raised when calling
.read(). Threat it just like .read() == ValueUnset.

Also, improve the comment and duplicate it on all functions. It's not obvious
that the same applies to all.

Change-Id: Ic9887daea405020bf37fbe1273dec0d00b0cd1b7