Maint: Adjust wording and formatting of several settings, notably reports
(#23403) 'autosign' setting should manage file parameters

Puppet settings of type :file can specify the owner, group, and mode of
the file specified by the setting, like so:

    [master]
    autosign = $confdir/autosign.conf { mode = 664, owner = service, group = service}

Commit bca628dc extracted the autosign setting validation to a setting
class but dropped the ability for file settings to be specified. This
commit resolves the issue by making the autosign setting inherit from
the file setting.
Maint/22374: Clarify the action/interaction of the noop setting and metaparameter
(#23403) Do File.expand_path on the expected path

The FileSetting#to_resource method will call File.expand_path, which on
Windows, will convert a relative path like /foo/bar to an absolute path based
on the current drive.

This commit changes to the test so that the autoconf setting returns an
absolute path.
Merge branch 'pr/2150' into stable

* pr/2150:
  (#23403) Do File.expand_path on the expected path
  (#23403) 'autosign' setting should manage file parameters
Merge pull request #2151 from nfagerlund/docs_noop_clarity

Clarify noop docs, reformat some other settings
(maint) Switch to setting Beaker log_level to debug

Beaker 1.3.0 introduces a new log_level, and deprecates the debug
setting, so we are using log_level now to get debug (full debug logs and
backtrace output).
(maint) Make [] operator flatten keys for all LHS types except hash.

It is expected in the Puppet Language that it is possible to write:

$x = ['a', 'b']
SomeType[$x]
(maint) Fix failing test for access operator since array is now ok
(PUP-910) Convert args from 4x representation to 3x

This is a partial solution that is ok as long as there are no functions
written that wants to use the 4x representation.

To be changed in 4.0.0 where functions should be able to opt in.
(maint) Make 3x conversion use verbatim types for non Host/Resource.
Merge branch 'stable'
(maint) Make Resource::Type use the CodeMerger strategy

This makes the Type.merge method use the CodeMerger instead of
relying on that code knows how to merge itself with any other kind
of code. The CodeMerger is parser specific and is obtained from the
ParserFactory. This way the choice of parser is hidden from the
Type.merge logic.

This also changes the CodeMerger.concatenate to only be responsible
for the actual concatenation (it used to also create a HostClass called
'' as it was used in only one specific use case).
Merge pull request #2167 from hlindberg/maint_future-evaluator-acceptance-test-2

(maint) Make more acceptance tests work for future evaluator
Merge branch 'maint/master/beaker-log-level-debug'

* maint/master/beaker-log-level-debug:
  (maint) Switch to setting Beaker log_level to debug
(maint) Pin beaker to 1.2.0