a62ac940c4
This further improves the `KotlinCompositeProvider` abstraction: - Pulling the abstraction's interfaces outside the `impl` package allows us to write consolidated documentation on composable Kotlin providers. - The addition of `KotlinComposableProvider` allows more specific bounds for the type parameters of `KotlinCompositeProvider` and `KotlinCompositeProviderFactory`. It also clarifies to Analysis API implementors which providers can be composed at all, as providers like `KotlinDeclarationProvider` extend this interface. - `KotlinComposableProviderMerger` provides a unified interface for provider mergers. ^KT-61791