HttpClientUtil.java defines and uses an abstract SchemaRegistryProvider for mapping a protocol to an Apache ConnectionSocketFactory. There is only one implementation of this abstract class (outside of test cases). Currently, it is not override-able at runtime.
This PR adds the ability to override the registry provider at runtime, using the class name value provided by "solr.httpclient.socketFactory.registry.provider", similar to how this class allows for choosing the HttpClientBuilderFactory at runtime. And SchemaRegistryProvider is renamed to SocketFactoryRegistryProvider.
We've implemented a custom mTLS solution in Solr (which uses a custom SSL context). This change helps us more easily configure Solr in a modular way, since we've implemented a custom SocketFactoryRegistryProvider that configures Apache clients to use our SSL context.