### Describe the bug Given a model such as: ```smithy union Foo { list: BarList } list BarList { member: Bar } string Bar ``` The generated code will make no attempt to differentiate between the union member `Foo.List` and the collection `kotlin.collections.List`: ```kotlin public sealed class Foo { public data class List(val value: List<kotlin.String>) : Foo () { // Compilation error: `List` has no generic args } } ``` We need smarter handling of Kotlin symbols when codegenning union members (and possibly elsewhere too). ### Expected behavior Shapes should codegen and compile successfully ### Current behavior Compilation fails ### Steps to Reproduce See above model ### Possible Solution _No response_ ### Context _No response_ ### Smithy-Kotlin version 1.2.18 ### Platform (JVM/JS/Native) JVM ### Operating system and version (n/a)