(#9862) Do not manage the group if it doesn't exist

The previous behavior for managing the group of a file meant that if the
group didn't exist puppet errored when trying to set permissions. This
changes the behavior to check for the existance of the group and in the
case of the group not existing (and we don't expect it to be created
because `:mkusers` is false) then the group is not managed.

There were several alternatives that were possible:

  * use the primary group of the "root" user
 * use the primary group of the `:owner` for the file

Neither of these were compellingly better alternatives, since this should
only be happening when puppet hasn't been fully configured on the system.