(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.
If this is going to be mandatory, can we make this not null? Perhaps we can switch it over to not null as a last step?