(PUP-2705) Use source permissions for fact pluginsync

The fix for PUP-1986 caused the agent to no longer apply source
permissions of pluginsync'ed content to the downloaded files. This
caused a regression with external executable facts, since they must be
executable on the agent in order for facter to execute them.

This commit re-enables using source permissions during fact pluginsync,
while continuing to ignore them for module pluginsync.
(maint) Test downloader behavior, not implementation

Test the behavior of the Puppet::Configurer::Downloader#file method, instead
of how it constructs a file resource.
Merge branch 'pr/2715'

* pr/2715:
  (maint) Test downloader behavior, not implementation
  (PUP-2705) Use source permissions for fact pluginsync