(#22593) Fix interpolation issues in future parser lexer (braces/kw)

The lexer did not honor nested braces inside an interpolation of a
puppet expression. This is bad because it leads to strange errors due to
the lexer telling the parser a lie. the fix ensures that end of
interpolated expression is based on balanced braces.

The interpolation functionality that the first bare word is a variable
is troublesome when wanting to use expressions like if, case, unless,
true false, as they become variable references. This changes the
behavior to interpret these as expression keywords instead of variable
names. Users who insist on using keywords as variable names should if
they need to interpolate $if, use either "$if" or "${$if}".

Test are added to cover these cases.
(#22699) set value_collection for boolean params
Updated the example text of 'puppet module generate puppetlabs-ssh' while personally exploring/learning what functionality 'puppet module generate' provides to users
Merge pull request #1953 from tchaudhri/update_puppet_face_module_gen_example_doc

(doc) Updated the example text of 'puppet module generate puppetlabs-ssh'.
(Maint) Fix indentation
Merge branch 'stable'
(#22593) Combine LBRACE handling into single rule

The LBRACE handling used to be split into two parts which made seeing
what an '}' character meant harder to follow and caused some duplicate
code, which only executed dependent on the order in which the lexer
tried to match the tokens. This combines the two cases together and
removes unneeded conditions.
Merge pull request #1958 from zaphod42/hlindberg-issue-22593-brace-kw-interpolation

(#22593) Fix interpolation issues in future parser lexer (braces/kw)
Merge pull request #1960 from jpartlow/issue/stable/22529_package_query_should_not_warn_for_later_versions_of_dpkg_query

(#22529) Handle no package message for different dpkg-query versions
Merge pull request #1947 from djmitche/bug22699

(#22699) set value_collection for boolean params
(maint) Test of resource package does-not-exist checks stderr

The acceptance test validated stdout, but did not validate absence of
errors logged on stderr.  This fixes that.
Merge branch 'stable'

* stable:
  (maint) Test of resource package does-not-exist checks stderr
  (#22529) Handle no package message for different dpkg-query versions
(maint) Ignore repo-configs directory

Just has locally stored repository information for acceptance runs.
(maint) Don't require CONFIG

It can be set in the local_options.rb as well.
(maint) Rake task to clean up preserved hosts.
(maint) Add configuration to run all the linux nodes
(maint) Manually archive hosts_file in log/latest/config.yml

Beaker is no longer archiving the current hosts configuration as
log/latest/config.yml.  So we are doing this ourselves if the current
run is preserving hosts.
(maint) Update README to distinguish packages/git testing

Update README to reflect that you can provision from packages or from
git checkouts.  Also clarifies some of the environment settings.
(maint) Debian packages install puppetmaster on master nodes

The 01_Install.rb packages/pre-suite script was mistakenly skipping the
puppetmaster install.  Thus the /etc/init.d/puppetmaster script was not
in place.  This change ensures installing puppetmaster package on debian
master nodes.
(maint) Correct ssldir for pre-suite ValidateSignCert

The packages/pre-suite/04_ValidateSignCert.rb setup step was using the
puppetpath host setting to determine ssl dir.  But this does not match
the ssl dir used by installed packages.  This corrects to obtain ssldir
setting from puppet via --configprint.