Be more helpful when missing arguments.

BEFORE:
```
(code-salt)salt:~/code/salt # salt salt test.echo
salt:
    Traceback (most recent call last):
      File "/root/code/salt/salt/minion.py", line 411, in _thread_return
        ret['return'] = func(*args, **kwargs)
    TypeError: echo() takes exactly 1 argument (0 given)
```

AFTER:
```
(code-salt)salt:~/code/salt # salt salt test.echo
salt:
    Missing arguments executing "test.echo": ArgSpec(args=['text'], varargs=None, keywords=None, defaults=None)
```
Check version using correct user

Version check fails if the correct user is not used (postgres on my system, the user root does not exist). By respecting the runas argument we avoid an error.
Ability to check which arguments is expected from an execution module.

The execution module sys.doc is great, but sometimes it is helpful to
see the full argument specification of a function.
Fix newline in npm.py.

See #3961.
Modified travis config to use salt ppa for requirements
Fixes some bugs with grain targeting.
Fix.
Update debian.rst
clarify docstring
Merge pull request #3964 from holmboe/missing-argument-msg

Be more helpful when missing arguments.
Merge pull request #3967 from tf198/travis-ppa

Travis failing
Merge pull request #3966 from holmboe/newline-3961

Fix newline in npm.py.
Merge pull request #3969 from kjkuan/grains-targeting-bugfix

Fixes some bugs with grain targeting.
Merge pull request #3971 from giantlock/develop

fix #3962
Merge pull request #3974 from valentinbud/develop

Update debian.rst
Clean up rst formatting
Update walkthrough.rst
modules/useradd: Allow home dir creation for system users.

If we create user with flag system=True then useradd utility will not
create user home directory even if it defined in login.defs.
This patch adds posibility to create explicitly set home directory (e.g system=/path/to/dir)
for system users.
Merge pull request #3977 from valentinbud/develop

Update walkthrough.rst
Update walkthrough.rst