Optional Text now works, including Display Name

For now, the rule is that if a field is Optional, and the returned value
is blank, we call that None.

This is a major behaviour change: Display Name *is* now allowed to be
empty, but we fixed the defaulting behaviour of what happens if so.