Move base attribute / type creation to its own dsl level
to allow more flexible specialization and allow attributes to be used in
the actual type DSL