(22977) Add a debugging option to help diagnose catalogs for a host that hash to different values

Added a new global config parameter to allow debugging of catalogs that hash to
a different value. This commit also changes the JSON format of the catalog used
for hashing to something more human readable. The following PRs were also related
to this change:

https://github.com/puppetlabs/puppetdb/pull/743
https://github.com/puppetlabs/puppetdb/pull/740
Added a new Troubleshooting Low Catalog Duplication guide and other docs
for the new catalog hash debugging feature
Added warnings when catalog hash debugging is enabled
Changed catalog debugging paths to be platform agnostic.

Updated storage.clj clojure docs to include ctalog-hash-debug-dir info

Refactored generated-stream/generated-string usage to default the date-format
and pretty print settings
Moved hash debugging fns to the scf/hash_debug.clj
Added an acceptance helper method for getting the vardir
Documentation changes - added a catalog debugging example and another
performance related FAQ
Changed the names of the catalog debugging files from new/old-catalog.* to catalog-new/old.*
Updated the catalog hash debugging code to use the same UUID for all 5 generated files for a given host
Munge the edge relationships and resource parameters to make diffing the
EDN files easier
Minor change to an acceptance test helper method name
Added direct test of cheshire/spit-json and utils/true-str?, and some minor doc changes
Merge pull request #748 from senior/ticket/master/22977-catalog-hash-debugging

(22977) Add a debugging option to help diagnose catalogs for a host that hash to different values