(#21241) Allow process priority to be specified

This commit add a `:priority` type of setting that maps generic priority
labels to operating system specific priorities, e.g. normal priority is
0 on posix, but 32 on Windows.

If the value is specified as an integer, then it is passed as is, so
that specific priority levels can be specified.

This commit also adds the `priority` setting to the main section of
puppet's configuration.

If a priority value is specified, then it is applied to the current process.
Puppet must be running as a privileged user to increase scheduling
priority.