### Summary

The `hostname` module crashes with a `TypeError` exception when the file-based strategy is used (e.g. when handling a Devuan host).

### Issue Type

Bug Report

### Component Name

hostname

### Ansible Version

```console
$ ansible --version
ansible [core 2.12.2]
  config file = /home/tseeker/ansible/main/ansible.cfg
  configured module search path = ['/home/tseeker/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/tseeker/.virtualenvs/ansible/lib/python3.9/site-packages/ansible
  ansible collection location = /home/tseeker/.ansible/collections:/usr/share/ansible/collections
  executable location = /home/tseeker/.virtualenvs/ansible/bin/ansible
  python version = 3.9.2 (default, Feb 28 2021, 17:03:44) [GCC 10.2.1 20210110]
  jinja version = 3.0.3
  libyaml = True
```


### Configuration

```console
$ ansible-config dump --only-changed
DEFAULT_ASK_VAULT_PASS(/home/tseeker/ansible/main/ansible.cfg) = True
DEFAULT_HOST_LIST(/home/tseeker/ansible/main/ansible.cfg) = ['/home/tseeker/ansible/main/inventory']
DEFAULT_JINJA2_EXTENSIONS(/home/tseeker/ansible/main/ansible.cfg) = jinja2.ext.do
HOST_KEY_CHECKING(/home/tseeker/ansible/main/ansible.cfg) = False
USE_PERSISTENT_CONNECTIONS(/home/tseeker/ansible/main/ansible.cfg) = True
```


### OS / Environment

Devuan Chimaera on both the host running Ansible and the target.

### Steps to Reproduce

Tested with : 

```bash
ansible -m ansible.builtin.hostname -a 'name=target' target
```

Various values for `use` were attempted.

### Expected Results

I expected the `hostname` to do exactly nothing as it was already configured on the machine in question.

### Actual Results

```console
The plugin crashes with the following traceback :


Traceback (most recent call last):
  File "/home/administrator/.ansible/tmp/ansible-tmp-1644935764.4447377-23987-132310327618278/AnsiballZ_hostname.py", line 259, in <module>
    _ansiballz_main()
  File "/home/administrator/.ansible/tmp/ansible-tmp-1644935764.4447377-23987-132310327618278/AnsiballZ_hostname.py", line 246, in _ansiballz_main
    exitcode = debug(sys.argv[1], zipped_mod, ANSIBALLZ_PARAMS)
  File "/home/administrator/.ansible/tmp/ansible-tmp-1644935764.4447377-23987-132310327618278/AnsiballZ_hostname.py", line 213, in debug
    runpy.run_module(mod_name='ansible.modules.hostname', init_globals=None, run_name='__main__', alter_sys=True)
  File "/usr/lib/python3.9/runpy.py", line 210, in run_module
    return _run_module_code(code, init_globals, run_name, mod_spec)
  File "/usr/lib/python3.9/runpy.py", line 97, in _run_module_code
    _run_code(code, mod_globals, init_globals,
  File "/usr/lib/python3.9/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/home/administrator/.ansible/tmp/ansible-tmp-1644935764.4447377-23987-132310327618278/debug_dir/ansible/modules/hostname.py", line 891, in <module>
    main()
  File "/home/administrator/.ansible/tmp/ansible-tmp-1644935764.4447377-23987-132310327618278/debug_dir/ansible/modules/hostname.py", line 885, in main
    'before': 'hostname = ' + name_before + '\n'}
TypeError: can only concatenate str (not "list") to str
```

This is caused by line 260 of `hostname.py`, which returns the array containing all the lines in whatever file `FileStrategy` is currently reading rather than just one line.


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
"""
    This is a macOS hostname manipulation strategy class. It uses
    /usr/sbin/scutil to set ComputerName, HostName, and LocalHostName.
    HostName corresponds to what most platforms consider to be hostname.
    It controls the name used on the command line and SSH.
    However, macOS also has LocalHostName and ComputerName settings.
    LocalHostName controls the Bonjour/ZeroConf name, used by services
    like AirDrop. This class implements a method, _scrub_hostname(), that mimics
    the transformations macOS makes on hostnames when enterened in the Sharing
    preference pane. It replaces spaces with dashes and removes all special
    characters.
    ComputerName is the name used for user-facing GUI services, like the
    System Preferences/Sharing pane and when users connect to the Mac over the network.
    """
    def __init__(self, module):