Add Attribute#optional?
Refactor Attribute to use #optional? internally