PSA: MLIRContext no longer exposes mutable dialect registry

Since [mlir] avoid exposing mutable DialectRegistry from MLIRContext · llvm/llvm-project@2996a8d · GitHub, MLIRContext no longer provides mutable access to the DialectRegistry it contains. Projects that relied on this to inject dialects should construct a new and call MLIRContext::appendDialectRegistry instead.

This refactoring allows us to perform delayed dialect interface registration, i.e. ask for an interface to be attached to the dialect when the dialect is actually created. This can be done without creating a build-time dependency of the dialect on the interface.