(#9546) Fix spec tests against facter 1.6.

Previously the facter_spec tests called directly into
Puppet::Nodes::Facts::Facter.setup_external_facts and
ran regardless of whether the facter version supports
external_facts_dirs=.

Note that facter 1.7 had external_facts_dir so this test passed,
but didn't have external_facts_dirs? and didn't support external
facts plugin sync, so really shouldn't have supported this test.
Facter 1.6 didn't have either so exposed this mismatch.

This change:
a) marks setup_external_facts as private, which was the intent
b) changes the affected tests to use the indirector's find method,
   which is intended to be public
c) changes the affected tests to be confined by Puppet.features.external_facts?