<!--- Verify first that your issue is not already reported on GitHub -->
<!--- Also test if the latest release and devel branch are affected too -->
<!--- Complete *all* sections as described, this form is processed automatically -->

##### SUMMARY
<!--- Explain the problem briefly below -->
There are two packages on PYPI: [systemd (0.16.1)](https://pypi.org/project/systemd/), and [systemd-python (234)](https://pypi.org/project/systemd-python/) (which is the correct package)

If the target machine has systemd (0.16.1) installed with `pip3 install systemd` instead of `pip3 install systemd-python`, ansible fails on any module that uses `journal.sendv()` with an error saying:
```
File "systemd/_journal.pyx", line 32, in systemd._journal._send
ValueError: Key name may not begin with an underscore
```

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
<!--- Write the short name of the module, plugin, task or feature below, use your best guess if unsure -->
`ansible/module_utils/basic.py`

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
ansible 2.8.2
  config file = None
  configured module search path = [u'/Users/rylanpolster/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /Library/Python/2.7/site-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 2.7.10 (default, Feb 22 2019, 21:55:15) [GCC 4.2.1 Compatible Apple LLVM 10.0.1 (clang-1001.0.37.14)]
```

##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```paste below
-
```

##### OS / ENVIRONMENT
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->
Target: Raspbian Stretch Lite (November 2018)

##### STEPS TO REPRODUCE
<!--- Describe exactly how to reproduce the problem, using a minimal test-case -->
On target: 
```
pip3 uninstall systemd-python
pip3 install systemd
```
<!--- Paste example playbooks or commands between quotes below -->
```yaml
- name: ls
  command: ls
```

<!--- HINT: You can paste gist.github.com links for larger files -->

##### EXPECTED RESULTS
<!--- Describe what you expected to happen when running the steps above -->
`changed: [pi]`

##### ACTUAL RESULTS
<!--- Describe what actually happened. If possible run with extra verbosity (-vvvv) -->

<!--- Paste verbatim command output between quotes -->
```paste below
The full traceback is:
Traceback (most recent call last):
  File "<stdin>", line 114, in <module>
  File "<stdin>", line 106, in _ansiballz_main
  File "<stdin>", line 49, in invoke_module
  File "/usr/lib/python3.5/imp.py", line 234, in load_module
    return load_source(name, filename, file)
  File "/usr/lib/python3.5/imp.py", line 170, in load_source
    module = _exec(spec, sys.modules[name])
  File "<frozen importlib._bootstrap>", line 626, in _exec
  File "<frozen importlib._bootstrap_external>", line 673, in exec_module
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
  File "/tmp/ansible_command_payload_afjk26dr/__main__.py", line 327, in <module>
  File "/tmp/ansible_command_payload_afjk26dr/__main__.py", line 228, in main
  File "/tmp/ansible_command_payload_afjk26dr/ansible_command_payload.zip/ansible/module_utils/basic.py", line 691, in __init__
  File "/tmp/ansible_command_payload_afjk26dr/ansible_command_payload.zip/ansible/module_utils/basic.py", line 1940, in _log_invocation
  File "/tmp/ansible_command_payload_afjk26dr/ansible_command_payload.zip/ansible/module_utils/basic.py", line 1898, in log
  File "systemd/_journal.pyx", line 68, in systemd._journal.send
  File "systemd/_journal.pyx", line 32, in systemd._journal._send
ValueError: Key name may not begin with an underscore

fatal: [pi]: FAILED! => {
    "changed": false,
    "module_stderr": "Traceback (most recent call last):\n  File \"<stdin>\", line 114, in <module>\n  File \"<stdin>\", line 106, in _ansiballz_main\n  File \"<stdin>\", line 49, in invoke_module\n  File \"/usr/lib/python3.5/imp.py\", line 234, in load_module\n    return load_source(name, filename, file)\n  File \"/usr/lib/python3.5/imp.py\", line 170, in load_source\n    module = _exec(spec, sys.modules[name])\n  File \"<frozen importlib._bootstrap>\", line 626, in _exec\n  File \"<frozen importlib._bootstrap_external>\", line 673, in exec_module\n  File \"<frozen importlib._bootstrap>\", line 222, in _call_with_frames_removed\n  File \"/tmp/ansible_command_payload_afjk26dr/__main__.py\", line 327, in <module>\n  File \"/tmp/ansible_command_payload_afjk26dr/__main__.py\", line 228, in main\n  File \"/tmp/ansible_command_payload_afjk26dr/ansible_command_payload.zip/ansible/module_utils/basic.py\", line 691, in __init__\n  File \"/tmp/ansible_command_payload_afjk26dr/ansible_command_payload.zip/ansible/module_utils/basic.py\", line 1940, in _log_invocation\n  File \"/tmp/ansible_command_payload_afjk26dr/ansible_command_payload.zip/ansible/module_utils/basic.py\", line 1898, in log\n  File \"systemd/_journal.pyx\", line 68, in systemd._journal.send\n  File \"systemd/_journal.pyx\", line 32, in systemd._journal._send\nValueError: Key name may not begin with an underscore\n",
    "module_stdout": "",
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
    "rc": 1
}
```
but before communicating to the process.
            (``Popen`` object will be passed to callback as a first argument)
        :returns: A 3-tuple of return code (integer), stdout (native string),
            and stderr (native string).  On python2, stdout and stderr are both
            byte strings.  On python3, stdout and stderr are text strings converted
            according to the encoding and errors parameters.  If you want byte
            strings on python3, use encoding=None to turn decoding to text off.
        '''
        
        self._clean = None
        if not isinstance(args, (list, binary_type, text_type)):
            msg = "Argument 'args' to run_command must be list or string"
            self.fail_json(rc=257, cmd=args, msg=msg)
        shell = False
        if use_unsafe_shell:
            
            if isinstance(args, list):
                args = b" ".join([to_bytes(shlex_quote(x), errors='surrogate_or_strict') for x in args])
            else:
                args = to_bytes(args, errors='surrogate_or_strict')
            
            if executable:
                executable = to_bytes(executable, errors='surrogate_or_strict')
                args = [executable, b'-c', args]
            elif self._shell not in (None, '/bin/sh'):
                args = [to_bytes(self._shell, errors='surrogate_or_strict'), b'-c', args]
            else:
                shell = True
        else: