Remove class name and variant type from attribute macros.
Add EnumAttributeAccessorImpl class, remove all Variant::Get<> functions for enum type.
Add attribute trait, treat ref attribute same with attribute.
Move attribute name as first parameter in ATTRIBUTE macro, same as other attribute macros.