Merge remote-tracking branch 'upstream/master' into puppet-4
- upstream/master: (PUP-3031) Move certification expiration check up (PUP-2907) Ignore source permissions on windows for fact sync (PUP-3056) Restore Windows constants from mixins (maint) Test that external fact syncing depends on external feature (maint) Move methods for creating downloaders to factory