### Summary

As part of a project to rename a user, I created a second user and group with the same UID as the first, something with Ansible supports by expliciting setting the `uid` to an pre-existing value.

Now the transition is complete and it's time to remove the old group. But Ansible can't do it, it fails with an error:

"groupdel: cannot remove the primary group of user"

Arguably, this could be a considered a bug with "groupdel", because I wasn't deleting the *only* primary group of the user. If `groupdel` allowed the deletion, the user still would have a primary group-- the new one with the same gid.  

It seems the solution that `groupdel` recommends though is to use the `--force` option, which is documented as being an override designed for cases like this. Here's the exact documentation for `--force` from `man groupdel`:

>  This option forces the removal of the group, even if there's some
user having the group as the primary one.

Ansible should support `force: true` for the `group` builtin, defaulting to false. When `true`, On Linux call `groupdel` with the `-f` option. 

Support using the longer `--force` flag was only fixed more recently (https://github.com/shadow-maint/shadow/pull/290). Since `-f` has been supported for longer, it should be used instead. 


### Issue Type

Feature Idea

### Component Name

group

### Additional Information

```yaml 
force: yes
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
info = self.group_info()
        if self.gid is not None and int(self.gid) != info[2]:
            cmd = [self.module.get_bin_path('dseditgroup', True)]
            cmd += ['-o', 'edit']
            if gid is not None:
                cmd += ['-i', str(gid)]
            cmd += ['-L', self.name]
            (rc, out, err) = self.execute_command(cmd)
            return (rc, out, err)
        return (None, '', '')
    def get_lowest_available_system_gid(self):
        
        try:
            cmd = [self.module.get_bin_path('dscl', True)]
            cmd += ['/Local/Default', '-list', '/Groups', 'PrimaryGroupID']
            (rc, out, err) = self.execute_command(cmd)
            lines = out.splitlines()
            highest = 0
            for group_info in lines:
                parts = group_info.split(' ')
                if len(parts) > 1:
                    gid = int(parts[-1])
                    if gid > highest and gid < 500:
                        highest = gid
            if highest == 0 or highest == 499:
                return False
            return (highest + 1)
        except Exception:
            return False
class OpenBsdGroup(Group):