(#20607) support symbolic file mode in Puppet::Util#replace_file

In order to fix #20607 (where incorrect 'settings specified' file
permissions were crashing P::U#replace_file), this patch enhance
P::U#replace_file default_mode behavior.

Now P::U#replace_file supports symbolic file mode, along with
octal numerical string, and pure octal integers. It also now fails
if the given mode is incorrect.

Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>