### Summary

Attempting to use the `hostname` module on a host running [CBL-Mariner](https://github.com/microsoft/CBL-Mariner) fails with the following error:

`hostname module cannot be used on platform Linux (Mariner)`

It looks like a method specifically for this OS is needed in modules/system/hostname.py.

Similar bugs in the past: #42726 and #58444
A PR to fix similar issues in the past is #56936

### Issue Type

Bug Report

### Component Name

hostname

### Ansible Version

```console
$ ansible --version
ansible 2.9.23
  config file = None
  configured module search path = ['/home/fedora/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.7.10 (default, Sep 28 2021, 20:29:11) [GCC 9.1.0]
```


### Configuration

```console
$ ansible-config dump --only-changed
```


### OS / Environment

OS is [CBL-Mariner](https://github.com/microsoft/CBL-Mariner)
/etc/os-release
```
NAME="Common Base Linux Mariner"
VERSION="1.0.20211230"
ID=mariner
VERSION_ID=1.0
PRETTY_NAME="CBL-Mariner/Linux"
ANSI_COLOR="1;34"
HOME_URL="https://aka.ms/cbl-mariner"
BUG_REPORT_URL="https://aka.ms/cbl-mariner"
SUPPORT_URL="https://aka.ms/cbl-mariner"
```
/etc/lsb-release
```
DISTRIB_ID="Mariner"
DISTRIB_RELEASE="1.0.20211230"
DISTRIB_CODENAME=Mariner
DISTRIB_DESCRIPTION="CBL-Mariner 1.0.20211230"
```
```
/etc/mariner-release
CBL-Mariner 1.0.20211230
MARINER_BUILD_NUMBER=f33d439
```

### Steps to Reproduce

<!--- Paste example playbooks or commands between quotes below -->
```yaml (paste below)
- name: "ensure hostname is correct"
  hostname: name={{ inventory_hostname }}
```


### Expected Results

I expected `hostname` to "just work" given CBL-Mariner is derived from Fedora Server 35.

### Actual Results

```console
Error received: hostname module cannot be used on platform Linux (Mariner)
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
if PY3:
            return str.maketrans(replace_chars, replacement_chars, delete_chars)
        if not isinstance(replace_chars, text_type) or not isinstance(replacement_chars, text_type):
            raise ValueError('replace_chars and replacement_chars must both be strings')
        if len(replace_chars) != len(replacement_chars):
            raise ValueError('replacement_chars must be the same length as replace_chars')
        table = dict(zip((ord(c) for c in replace_chars), replacement_chars))
        for char in delete_chars:
            table[ord(char)] = None
        return table
    def _scrub_hostname(self, name):
        """
        LocalHostName only accepts valid DNS characters while HostName and ComputerName
        accept a much wider range of characters. This function aims to mimic how macOS
        translates a friendly name to the LocalHostName.
        """
        
        name = to_text(name)
        replace_chars = u'\'"~`!@#$%^&*(){}[]/=?+\\|-_ '
        delete_chars = u".'"
        table = self._make_translation(replace_chars, u'-' * len(replace_chars), delete_chars)
        name = name.translate(table)
        
        while '-' * 2 in name:
            name = name.replace('-' * 2, '')
        name = name.rstrip('-')
        return name
    def get_current_hostname(self):