<!--- 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
npm doesn't allow "name" arg to be list, gives completely useless, cryptic error when it is

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
npm

##### ANSIBLE VERSION
```paste below
ansible 2.8.1
  config file = /home/jik/src/family-orchestration/ansible.cfg
  configured module search path = [u'/home/jik/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/dist-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.16 (default, Apr  6 2019, 01:42:57) [GCC 8.3.0]
```

##### CONFIGURATION
```paste below
ANSIBLE_PIPELINING(/home/jik/src/family-orchestration/ansible.cfg) = True
DEFAULT_HOST_LIST(/home/jik/src/family-orchestration/ansible.cfg) = [u'/home/jik
DEFAULT_REMOTE_USER(/home/jik/src/family-orchestration/ansible.cfg) = root
```

##### OS / ENVIRONMENT
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->
Both console and remote ansible host are Ubuntu 19.04 amd64.

##### STEPS TO REPRODUCE

<!--- Paste example playbooks or commands between quotes below -->
```yaml
----
- hosts: localhost
  tasks:
  - npm:
      name:
      - eslint
      - eslint-scope 
```

##### EXPECTED RESULTS
The listed npm packages are installed in a two npm invocations (one to determine which are installed, one to install the missing ones).

##### ACTUAL RESULTS
Completely incomprehensible "ValueError: No JSON object could be decoded" error that doesn't tell you anything about what you're doing wrong or how to fix it.
path=dict(default=None, type='path'),
        version=dict(default=None),
        production=dict(default='no', type='bool'),
        executable=dict(default=None, type='path'),
        registry=dict(default=None),
        state=dict(default='present', choices=['present', 'absent', 'latest']),
        ignore_scripts=dict(default=False, type='bool'),
        unsafe_perm=dict(default=False, type='bool'),
        ci=dict(default=False, type='bool'),
    )
    arg_spec['global'] = dict(default='no', type='bool')
    module = AnsibleModule(
        argument_spec=arg_spec,
        supports_check_mode=True
    )
    name = module.params['name']
    path = module.params['path']
    version = module.params['version']
    glbl = module.params['global']
    production = module.params['production']
    executable = module.params['executable']
    registry = module.params['registry']
    state = module.params['state']
    ignore_scripts = module.params['ignore_scripts']
    unsafe_perm = module.params['unsafe_perm']
    ci = module.params['ci']
    if not path and not glbl:
        module.fail_json(msg='path must be specified when not using global')
    if state == 'absent' and not name:
        module.fail_json(msg='uninstalling a package is only available for named packages')