(#18268) Specify service startup mode

This allows the service start mode to be specified on the command line as an
MSI parameter to the installer PUPPET_AGENT_STARTUP_MODE.

Valid choices are `Automatic` (default), `Manual` and `Disabled`. If you put in anything
besides these, it will default to `Automatic`.
Merge branch 'ticket/master/18268-specify_service_start_mode'

* ticket/master/18268-specify_service_start_mode:
  (#18268) Specify service startup mode
(#20281) Save the command line value to the correct property

Previously, the BeforeAppSearch custom actions were saving properties of the
form PUPPET_* to properties named [CMDLINE_PUPPET_*] where the brackets are
part of the name. The AppSearch actions would then overwrite the PUPPET_*
properties with the values from the registry, if any, from the very first
installation.

The AfterAppSearch custom actions would retrieve the values from
CMDLINE_PUPPET_*, but the values would be NULL, and so the custom actions would
never run.

This commit changes the BeforeAppSearch custom actions to write to the
CMDLINE_PUPPET_* properties instead of [CMDLINE_PUPPET_*] so that they can be
retrieved correctly. As a result, any property specified on the command line
will override any value that was entered previously.

Note values entered on the command line will not overwrite values in
puppet.conf due to our use of createLine instead of addLine, and that will be
fixed in a future commit.

Paired-with: Rob Reynolds <rob@puppetlabs.com>