Apply external fact weights

This PR makes me a bit :rage:, but you do what you have to do.

The custom external fact loader's weight wasn't being applied, because of this rubbyism:

```ruby
class A
  FOO="A"
  def foo; FOO; end
end

class B < A
  FOO="B"
end

A.new.foo # => "A"
B.new.foo # => "A"

class A
  def foo; self.class::FOO; end
end

A.new.foo # => "A"
B.new.foo # => "B"
```

So, we copy the `#load` method from `Facter::Util::DirectoryLoader`.