Add TypedAttrName<T> to public DSL; support cascade calls to attr.as().