(#23373) Update acceptance test to use config set

This is the first, simple case of using a `config set` subcommand to
manipulate the puppet.conf file.
(Maint) Allow specifying tests to run to rake task
(#23373) Allow basic control of puppet.conf

This provides a new action on the puppet config subcommand to allow
setting configuration values in the puppet.conf file. This implemenation
does not understand sections and so will simply change the first
instance of the configuration parameter that it is trying to change.
(#23373) Remove duplicate config file parsers

This merges together the two concrete parsers for the puppet config
file. The transformation into the section groups is now done as a second
pass that works on the individual line objects. In doing so it became
clear that the error reporting was supposed to be issuing line numbers,
but was instead outputing the entire line that was wrong. This also
fixes up that mistake.
(#23373) Pull apart ConfigFile and IniFile

The ConfigFile was getting muddled and large. This pulls out the new
file manipulation code into IniFile and has ConfigFile use that.
(#23373) Fix line number tracking for settings config

Ensure we incremenet line count when parsing an ini_file, and tests that
we are correctly tracking line count in multi line config errors.
(#23373) Always open config so we are reading from the beginning

Not all operating systems start reading from the same position with 'a+'
when opening the file.  This ensures that we create the file with
default permissions, and begin reading from the first line.

We also make some acceptance changes for testing puppet config set, and
remove an acceptance test which was of dubious value.
Merge branch 'feature/master/23373-manipulate-puppet-conf-ignore-sections'
Merge branch 'master' of https://github.com/puppetlabs/puppet