(#21520) Provide option for soft failure during terminus writes when PuppetDB is unavailable

This patch adds a new option 'soft_write_failure' for puppetdb.conf to change
the terminus behaviour so that if a command or write fails, instead of
throwing an exception and causing the agent to stop it will simply log an
error to the puppet master log.

Signed-off-by: Ken Barber <ken@bob.sh>
(PE-948) Store containment path and class
(PE-949) Store transaction uuid
Updated documentation
Updated tests to right format, use dashes, & test for nils
Pull file/line inclusion out of conditionals, prefer dashes to underscores, little cleanup
Fix test to use dashes instead of underscores
Succinct-ness
Anonymize transaction-uuid in full profile only
Anonymize references in the containment-path
Merge pull request #626 from cprice404/feature/burgundy/containing-class-transaction-uuid

Feature/burgundy/containing class transaction uuid
Add transaction-uuid key to catalog if it doesn't exist

Since old versions of puppet don't have a transaction-uuid
in their catalog, and since we need to support imports of data
that was exported from prior versions of puppetdb, the
catalog transformation logic needs to tolerate the
absence of this key.

This commit simply adds the key (with a value of `nil`) if the
key isn't already present.
Add post-condition for transaction-uuid key in catalog
Merge pull request #627 from cprice404/bug/burgundy/legacy-storeconfigs-export

Bug/burgundy/legacy storeconfigs export
Merge pull request #625 from kbarber/ticket/burgundy/21520-soft-terminus-write-failure

Ticket/burgundy/21520 soft terminus write failure
(PE-1240) Query support for latest-reports events

Prior to this commit, event queries returned all events for all reports.
This adds support for flagging "last-run-only" when querying to return
only the events that came from the latest report.
Cleanup; compound test for last-run-only
Change field to 'latest-report' instead of array
Merge pull request #628 from shakedown/dev/burgundy/pe1240-query-latest-reports

Dev/burgundy/pe1240 query latest reports
(PE-991) Log when nodes are rejected by cert whitelist

Otherwise, the user would have no (obvious) indication why their
request was rejected.