<!--- 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
The current implementation of the edgeos_config module has changing behaviour for handling the stripping of single quotation marks.

So in review of this [line](https://github.com/ansible/ansible/blob/devel/lib/ansible/modules/network/edgeos/edgeos_config.py#L197) the `item` var is defined with stripped single quotes. This is then used for a series of comparisons ending with the original non-stripped `line` var defined in the for loop being added to the `updates` list. Though on line [213](https://github.com/ansible/ansible/blob/devel/lib/ansible/modules/network/edgeos/edgeos_config.py#L213) it uses `item`. This introduces a change of behaviour described below.

A potential method of addressing this is to use double quotes. Unfortunately these will be escaped meaning that Ansible will always report a change on existing text values. It does work for empty values like `plaintext-password`

```
set system login user test full-name "test user"
```
results in 
```
"set system login user test full-name test \"user\""
```

Another potential resolution of this is to remove the white space stripping all together and put the onus on correct command syntax in the hands of the user. 

When passing a single quote within a value Ansible correctly returns a valid error code
```
set system login user test full-name "test' user"
```
Results in:
```
Cannot use the single quote (') character in a value string
```

The only issue which the original stripping might of been added to address is when a hanging single quote is left. So if an invalid command line is passed through, Ansible will hang on the network connection waiting on input.
```
set system login user test full-name 'test' user'
```

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
<!--- Write the short name of the module, plugin, task or feature below, use your best guess if unsure -->
[EdgeOS (edgeos_config) network module](https://github.com/ansible/ansible/blob/devel/lib/ansible/modules/network/edgeos/edgeos_config.py)

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
ansible 2.9.2
ansible 2.10.0.dev0
```

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

##### STEPS TO REPRODUCE

The following will be successfully added to the updates list including single quotes:

```
set system login user test level admin
set system login user test authentication encrypted-password <encrypted-value>
set system login user test authentication plaintext-password ''
set system login user test full-name 'test user'
```

With a delete command though it will be added via the delete logic stripping the single quotes:

```
delete system login user test
set system login user test level admin
set system login user test authentication encrypted-password <encrypted-value>
set system login user test authentication plaintext-password ''
set system login user test full-name 'test user'
```

##### EXPECTED RESULTS
<!--- Describe what you expected to happen when running the steps above -->

Both with and without a delete the config should be handled the same

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

<!--- Paste verbatim command output between quotes -->
Adding the delete command results in Ansible failing in two ways. The `plaintext-password` will be invalid for having no value. The `full-name` will be invalid for having two values:

```
set system login user test authentication plaintext-password
set system login user test full-name test user
```
config = [to_native(c).replace("'", '') for c in config.splitlines()]
    updates = list()
    visited = set()
    delete_commands = [line for line in commands if line.startswith('delete')]
    for line in commands:
        item = to_native(line).replace("'", '')
        if not item.startswith('set') and not item.startswith('delete'):
            raise ValueError('line must start with either `set` or `delete`')
        elif item.startswith('set'):
            if item not in config:
                updates.append(line)
            
            
            else:
                ditem = re.sub('set', 'delete', item)
                for line in delete_commands:
                    if ditem.startswith(line):
                        updates.append(item)
        elif item.startswith('delete'):
            if not config:
                updates.append(line)
            else:
                item = re.sub(r'delete', 'set', item)
                for entry in config:
                    if entry.startswith(item) and line not in visited:
                        updates.append(line)
                        visited.add(line)
    return list(updates)
def run(module, result):