Add warning to the top of bootstrap failsafe.cf
Bug #2057 - Messages from edit_xml operations do not show the xpath

Improved error messages for edit_xml promises:
- include more useful information in error messages, such as select_xpath and name of XML document being edited
- verify cfPS() parameters, such as cf_error or cf_verbose
- improve general appearance of messages, such as punctuation and whitespace

Correct SanityCheckTreeInsertions() so that there are not error messages on multiple passes, when inserting a tree into an initially empty file.
(cherry picked from commit ed81339810fca62298d2553609d61739a2aeb7fd)

Conflicts:

	src/files_editxml.c
Fix for 1804

At creation time we were always assigning 0600 as mode to the new file.
This fix stats the source file first and assigns the same mode as the
original file.
Acceptance tests are updated too.
(cherry picked from commit 426a922790fb94b65239b0a32d21918aa804ec35)
ChangeLog update
Don't flood error messages when processes are out of defined range.

If promises are not in the desired state, then this is recored via cf_verbose,
not via cf_error. cf_error is for failures that cannot be fixed.
(cherry picked from commit 77d08a687f73bb97c758b9defe73a36e0a96207b)
Fix initialization of Promise struct in TestExpandPromise

This addresses Redmine #2021 - https://cfengine.com/dev/issues/2021

When the namespace member was added to the Promises_ structure in
commit 09613d808adffefd926cb686a9c53e252bb61e6 the initialization
of that char pointer was added to NewPromise, but omitted from
TestExpandPromise, which builds a standalone Promise for testing.

When the code attempted to copy the test promise, it called xstrdup
on the uninitialized pointer in pp.namespace, resulting in a core
dump. By initializing the namespace string in TestExpandPromise,
this problem is avoided.
(cherry picked from commit 32a8e2f3670d12b6fddf0c03f9fa9fcbc16412a0)
ChangeLog update
New options `-p` and `-t` for `cf-key`.