(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.
I think we should probably discuss the usage of the hash some. In other areas of the code, the hash determines whether or not we should update things. This hash is only going to be used in sync. Maybe this doesn't matter since facts always change (i.e. uptime). @kbarber do people ever remove these always changing facts? This patch requires two pieces to be unique, node name + hash. If we included the node name in the hash, we could query it directly. Is that useful?