Remove IFileProvider overload on ConfigureCertificateOptions
In #1306, we added an overload on ConfigureCertificateOptions that takes an IFileProvider. The idea was to make it possible to specify your own PhysicalFileProvider whose root directory is above the webroot, and then use relative paths to certificate files in configuration. However, ConfigureCertificateOptions doesn't have a dependency on IFileProvider, so it doesn't work as expected.
The IFileProvider abstraction works against us, because we want to allow accessing certificates that aren't in (a subdirectory of) the web root.
Instead, we shouldn't use IFileProvider at all, but directly access the file system. When relative paths occur in configuration, they will be resolved against the current directory, which is what File.ReadAllText already does. This requires refactoring FilePathInOptionsChangeTokenSource to use the underlying FileSystemWatcher directly instead of the IFileProvider abstraction, which has a different API to register for changes.
As part of this, the dependency on Microsoft.Extensions.FileProviders.Physical can be removed from the project.