(#19447) Add :manages_symlinks to file type

 - The ensure => :link feature of the file type is now restricted by
   the :manages_symlinks feature
 - Only the existing POSIX provider allows symlink support
 - Updated relevant tests to check a provider for
   .feature?(:manages_symlinks) over Puppet.features.microsoft_windows?
 - metadata_spec.rb was refactored as RSpec nested tests can override
   their ability to run with true :if conditions. Shared examples
   intended to be run on Windows only were also being executed under
   OSX because provider feature :manages_symlinks check was true,
   despite the enclosing test scope being restricted to Windows
 - file_spec.rb unit tests had 5 new manages_symlinks guards enabled on
   tests, preventing 10 existing tests from running on Windows that
   likely should never have been run in that environment (these tests
   will be re-enabled with Windows symlink support)