(#17554) Use agent run_mode when resolving runinterval

Previously, the windows service was invoking `puppet config print
runinterval` to determine how frequently to invoke the puppet agent.
However, that only takes into account the main section, not the agent
section, and runinterval is agent-specific.

This commit changes the windows service to invoke `puppet agent
--configprint runinterval` which takes into account the agent
section of the settings.
Merge pull request #1292 from joshcooper/ticket/3.0.x/17554-runinterval

(#17554) Use agent run_mode when resolving runinterval
(#16488) Add `--puppetport` to list of kick options

The fact that the kick application uses the `--puppetport` agent
option in a special way (to _connect_ to agents, rather than
to listen) was not previously documented, as #16488 points out.

This commit adds a simple description to the option output in
`puppet help kick`
(#16676) Clarify file format restrictions around comments

Previously the help text at the top of the generated config files
did not describe what the file format ought to be. There is a
description in the documentation (guides/configuration.html),
but our inline docs should be consistent with that. This led
to confusion and bugs like #16676 and #16672.

Now we state clearly that whole-line comments are allowed but
not partial-line comments. Plus I got to use the word 'octothorpe'.
(#17844) Change 'my' to 'ruby_eval' for evaluation in Object's scope.

This changes the Ruby DSL escape from the shackles of BasicObject
adapted to be used for evaluating Puppet Ruby DSL statements. (i.e. to
get to 'require' and other methods available on Object), by renaming it
from "my" to "ruby_eval".
Update module acceptance tests for changed log output

Log message at the `notice` level now print "Notice: " again, so all the
module tool tests which include every character of output, even color codes,
had to be updated. This change is signed off by the module tool team lead and
ux person.
Merge branch '3.0.x'

* 3.0.x:
  Update module acceptance tests for changed log output
  (#16676) Clarify file format restrictions around comments
  (#16488) Add `--puppetport` to list of kick options
  (#17554) Use agent run_mode when resolving runinterval
(#6631) Remove runlevel 4 from default-start, add requires, buildrequires

As stated in the ticket, runlevel 4 is not defined on suse, so the init scripts
should not have a default-start on runlevel 4. Additionally, because we ship
logrotate rules in the package, the package needs to depend on logrotate. The
buildrequires of klogd and sysconfig are needed as buildtime dependencies as
noted in the ticket.
Merge pull request #1218 from haus/maint/3.0.x/update_suse_init_and_defaults

Maint/3.0.x/update suse init and defaults
(#17861) start agent with no options on Solaris

Command line options override puppet.conf, so having a svc property and
using it is not the right way. In contrast, the Debian packaged
puppet agent runs with no options; let's do that here as well.
(#16112) Add Augeas clearm command support

Without this patch applied, When trying to use clearm in augeas provider
I get the following error:

    err: /Augeas[boot_grub_menulst_kernel_param_timekeeping_use_tsc]:
    Could not evaluate: Unknown command clearm

This patch fixes the problem by using the Ruby augeas bindings to test
if the clearm command is supported.  If it is not, the catalog run
fails, otherwise it continues.

This support does not take the form of a new parameter.  Instead, the
patch follows the existing augeas convention of using the `changes`
parameter.
Merge branch 'jmccann-augeas_add_clearm_support'

* jmccann-augeas_add_clearm_support:
  (#16112) Add Augeas clearm command support
(#17853) Allow install.rb to execute from outside of source root

Previously if install.rb was invoked when outside of the source root, all of
the globs would fail to find bins, libs, etc, or worse if run from / it will
find the binaries in /bin and copy them to bindir. This commit addresses that
by running the install after cding into the directory containing the install.rb
file.
(maint) Remove unused tests bits from install.rb

There are no tests in the test directory in Puppet past 3.0, so the run_tests
method and the tests globs are no longer needed. This commit removes those
mentions of tests from install.rb.
Remove nonexistent files from the rdoc glob

CHANGELOG, TODO, Install, README and README-library don't exist anymore (if
they ever did), so this commit removes them from the rdoc glob while globbing
all of the current READMEs that are in puppet.
Remove gem.rake from 3.0.x

gem.rake is no longer used in 3.0.x because of the new workflow using the
packaging repo. It was still required in 2.7.x because 2.7.x still shipped with
sbin files and the gem.rake did some magic with moving sbin to bin. This commit
removes the rake task.
Merge pull request #1300 from haus/ticket/3.0.x/17853_allow_install_from_outside_source_root

(#17853) Allow install.rb to execute from outside of source root
Merge pull request #1301 from haus/maint/3.0.x/remove_unused_test_code

Maint/3.0.x/remove unused test code
(#17845) - Add YARD doc to [] and []= in scope (= API)

The scope is passed to the Ruby DSL and is thus exposed to those that
author Ruby DSL logic. Since the same scope is also used by the Ruby DSL
implementation itself it is difficult to shield the user from access to
the real object. Instead, the methods that are API should be marked.

This commit adds "PUBLIC API" and a more doc text to the only two
methods that are considered to be API.

This required that the aliased methods [] and []= where changed to real
methods as it was not possible to mark the implemented methods as non
api while the aliases were api (there is a difference in parameter
passing to the operators and the underlying methods).
(#17845) Add @since 3.0.x EXPERIMENTAL to Puppet::DSL (transitive).

This marks all the modules and classes in the Puppet::DSL namespace
to be @since 3.0.x EXPERIMENTAL. (The @since tag is the only tag except
@api that is transitive, and unlike @api, the @since tag outputs the
text that follows.