### 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
cmd = [self.module.get_bin_path('addgroup', True)]
        if self.gid is not None:
            cmd.extend(['-g', str(self.gid)])
        if self.system:
            cmd.append('-S')
        cmd.append(self.name)
        return self.execute_command(cmd)
    def group_del(self):
        cmd = [self.module.get_bin_path('delgroup', True), self.name]
        return self.execute_command(cmd)
    def group_mod(self, **kwargs):
        
        info = self.group_info()
        if self.gid is not None and self.gid != info[2]:
            with open('/etc/group', 'rb') as f:
                b_groups = f.read()
            b_name = to_bytes(self.name)
            b_current_group_string = b'%s:x:%d:' % (b_name, info[2])
            b_new_group_string = b'%s:x:%d:' % (b_name, self.gid)
            if b':%d:' % self.gid in b_groups:
                self.module.fail_json(msg="gid '{gid}' in use".format(gid=self.gid))
            if self.module.check_mode:
                return 0, '', ''
            b_new_groups = b_groups.replace(b_current_group_string, b_new_group_string)
            with open('/etc/group', 'wb') as f:
                f.write(b_new_groups)
            return 0, '', ''
        return None, '', ''
class AlpineGroup(BusyBoxGroup):