`Attribute` should know about its name

Depends on #15869

This allows using polymorphism for the uninitialized attributes raising
an exception behavior.
Can be simplified to `yield name if block_given?`