Introduce an object to aid in creation and management of `@attributes`

Mostly delegation to start, but we can start moving a lot of behavior off of `Base`, and into this object soon.
`:nodoc:`