Refactor how invalid values are handled by PropertyEditors and Formatters