(PDB-898) Add factset hash to replace-facts!

This commit associates a hash of each factset with the metadata of the factset
to allow us to easily tell if fact values have changed.
hostname + domainname matches the nodename also, usually this is true, about 95% of the time. But it is user configurable in Puppet.

@senior sometimes people remove changing facts, but its very very rare. In fact it's kind of hard to do I believe.