The public interface for interacting with analytics. The basic usage is to call CreateAnalyticsProvider and supply a configuration delegate. Specific analytics providers may choose to provide strongly-typed factory methods for configuration, in which case you are free to call that directly if you know exactly what provider you will be using. This class merely facilitates loosely bound provider configuration so the provider itself can be configured purely via config.