<!--- 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 -->
The sefcotext module encounters an error when trying to run with parameter
`ftype` set to `"s"` when the fcontext is already present.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
<!--- Write the short name of the module, plugin, task or feature below, use your best guess if unsure -->
sefcontext module

lib/ansible/modules/system/sefcontext.py

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
ansible 2.9.1
  ...
  python version = 3.7.5 (default, Oct 17 2019, 12:16:48) [GCC 9.2.1 20190827 (Red Hat 9.2.1-1)]
```

##### OS / ENVIRONMENT
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->

Fedora 31 WS. Also broken for CentOS 8.


##### STEPS TO REPRODUCE
<!--- Describe exactly how to reproduce the problem, using a minimal test-case -->
Run the given reproducer two or more times on the same target.

<!--- Paste example playbooks or commands between quotes below -->
```yaml
- name: "reproducer"
  sefcontext:
    ftype: "s"
    path: "/foo/bar"
    setype: "var_t"
```

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

##### EXPECTED RESULTS

- if no fcontext record exists, create record
- if fcontext record exists, ensure the type and context are set correctly

- first run: adds record (`changed: ...`)
- second run: fails (`ok: ...`)

```
TASK [reproducer : reproducer] *********************************************************************************
changed: [localhost]

...

TASK [reproducer : reproducer] *********************************************************************************
ok: [localhost]
```

##### ACTUAL RESULTS

- if no fcontext rule exists, create rule (this works fine)
- a existing rule does not get recognised and the module tries to create 

- first run: adds record (`changed: ...`)
- second run: fails (`fatal: ...`)

```
TASK [reproducer : reproducer] *********************************************************************************
changed: [localhost]

...

TASK [reproducer : reproducer] *********************************************************************************
fatal: [localhost]: FAILED! => {"changed": false, "msg": "ValueError: File context for /foo/bar already defined\n"}
```

## Proposed fix

When running `semanage fcontext -l` one can see the socket file type is called `socket` and not `socket file`. Also if you look in records at [this position](https://github.com/ansible/ansible/blob/ddd786eedfb416ee3fc0dbec3a2b65d58440d026/lib/ansible/modules/system/sefcontext.py#L163) some tuples with `(something, "socket")` show up but none with `(something, "socket file")`.

The following patch seems to fix the mentioned issue.

```diff
diff --git a/lib/ansible/modules/system/sefcontext.py b/lib/ansible/modules/system/sefcontext.py
index dfe846e7f2..33e3fd2e40 100644
--- a/lib/ansible/modules/system/sefcontext.py
+++ b/lib/ansible/modules/system/sefcontext.py
@@ -148,7 +148,7 @@ option_to_file_type_str = dict(
     f='regular file',
     l='symbolic link',
     p='named pipe',
-    s='socket file',
+    s='socket',
 )
```

---
CC: @dagwieers 
HAVE_SELINUX = False
SEOBJECT_IMP_ERR = None
try:
    import seobject
    HAVE_SEOBJECT = True
except ImportError:
    SEOBJECT_IMP_ERR = traceback.format_exc()
    HAVE_SEOBJECT = False
if HAVE_SEOBJECT:
    seobject.file_types.update(
        a=seobject.SEMANAGE_FCONTEXT_ALL,
        b=seobject.SEMANAGE_FCONTEXT_BLOCK,
        c=seobject.SEMANAGE_FCONTEXT_CHAR,
        d=seobject.SEMANAGE_FCONTEXT_DIR,
        f=seobject.SEMANAGE_FCONTEXT_REG,
        l=seobject.SEMANAGE_FCONTEXT_LINK,
        p=seobject.SEMANAGE_FCONTEXT_PIPE,
        s=seobject.SEMANAGE_FCONTEXT_SOCK,
    )
option_to_file_type_str = dict(
    a='all files',
    b='block device',
    c='character device',
    d='directory',
    f='regular file',
    l='symbolic link',
    p='named pipe',
    s='socket file',
)
def get_runtime_status(ignore_selinux_state=False):