(maint) Avoid repeated fact evaluation against different loaders

Commit 4d937456e fixed an infinite recursion problem where Facter could load
a fact, e.g. ec2, and outside of the setcode body, the fact could reference
another fact, e.g. macaddress, that had not yet been evaluated. This results
in a fact cache miss, causing Facter to reload all facts, including the
original one, e.g. ec2, leading to an infinite loop.

The spec test was written to load nosuchfact.rb, which contained ruby
code that tried to resolve :nosuchfact, causing a cache miss, and
to ensure we didn't infinitely recurse.

However, the spec test did not account that there are two loaders in play,
so if you run:

    $ bundle exec rspec spec/unit/util/loader_spec.rb
    Already evaluated rest at /Users/josh/work/facter/lib/facter/ec2.rb:4, reevaluating anyways
    Already evaluated rest at /Users/josh/work/facter/lib/facter/ec2.rb:21, reevaluating anyways

The reason is because the spec test creates a loader that defines the
ec2 fact and its rest resolution. However, when nosuchfact.rb is loaded,
it calls Facter.value, which delegates to a different loader than the one the
test created. As a result, the ec2 fact is evaluated twice.

This commit simplifies the spec test to ensure that Kernel.load is only
called once for a given fact.