Fix the name translator ignoring ignored elements.

The fix consists of the translator introducing an `OptionalName` class
that reflects the name's state: present, missing or ignored.

I also renamed the 3 `nameFor` methods to reflect their relevant function.