In ExecuteSchedule, missing attributes is a ProgrammingError

This is substituting ProgrammingError for cfPS. For example, when adding
packages, the package_method needs to have an add command. But this
runtime error is checked during scheduling of packages, and a package
should not be scheduled for adding if the add command is not present.

This is done to simplify ExecuteSchedule for compliance.
DeleteTypeContext before PromiseType frame pop, in ScheduleAgentOperations
First pass cleanup ExecutePatch (packages)
In ExecutePatch, missing attributes is a ProgrammingError
Record compliance for package schedule execution
Methods that do nothing are also verified/kept

Fixes Redmine #4852. If a bundle invoked via a methods promise
results only in skipped promises, then the methods promise is kept.

That this issue exists with the test case in the redmine ticket
suggests that file promises return inconsistent results here. A
promise to create a file when that file exists should return NOOP,
not SKIPPED.
Redmine#4852: ensure a kept bundle is reported correctly to the methods promise
tests/acceptance/16_cf-serverd/01_start: re-enabled allow_path1_then_deny_path2*
Fix leak on failed mustache templates
Merge remote-tracking branch 'nick/redmine/4682'
Fix static handle duplicate checking

Do not count handles with variable references. Do not count duplicate handles
attached to promises with different class expressions.

Close #4682
tests/acceptance/10_files/01_create/perms-mode.cf: add Windows-specific permissions
libpromises/generic_agent.c: log only parsing errors in VERBOSE; missing file (-f case) in DEBUG
Fix more Win passwords

Note that 'modify_user_with_many_attributes.cf' still fails with this
change.
Mark the single failing test as needs work
Unbreak 239 tests on Windows: #4733 fixed
Unbreak on win: another insert_lines crlf

Close #4670.
Unbreak on win; coutlinesmatching()
Unbreak on win; parsearray() vs #4733
Unbreak on Win; nth() vs #4733