<!--- 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
```
to work properly."
  - For more information please see the L(Network Guide,../network/getting_started/index.html).
notes:
  - Tested against EdgeOS 1.9.7
  - Setting C(ANSIBLE_PERSISTENT_COMMAND_TIMEOUT) to 30 is recommended since
    the save command can take longer than the default of 10 seconds on
    some EdgeOS hardware.
options:
  lines:
    description:
      - The ordered set of configuration lines to be managed and
        compared with the existing configuration on the remote
        device.
  src:
    description:
      - The C(src) argument specifies the path to the source config
        file to load. The source config file can either be in
        bracket format or set format. The source file can include
        Jinja2 template variables.
  match:
    description:
      - The C(match) argument controls the method used to match
        against the current active configuration. By default, the
        desired config is matched against the active config and the
        deltas are loaded. If the C(match) argument is set to C(none)
        the active configuration is ignored and the configuration is
        always loaded.
    default: line
    choices: ['line', 'none']
  backup: