modules/zfs : add module for zfs command

This first version is very basic and partially handles the 'list'
argument.
Merge pull request #5203 from virtua-network/zfs_module

modules/zfs : add module for zfs command
Output an error if no matching sls file is found, Fix #5048
Fix some pep8
Make the error message more readable
Fixed issue with npm.install for npm>=1.2.21. Closes #5189
Added argument passing to cmd.script state
Merge remote branch 'upstream/develop' into cmd_script
Fixed shadowing built-in in mdadm module. Ref #5085
Replace `rpmUtils.arch.getBaseArch()` with `rpmUtils.arch.getCanonArch()`.

According to the `rpmUtils.arch` source code, when no argument is passed to `rpmUtils.arch.getBaseArch()`, the result should be the same as `rpmUtils.arch.getCanonArch()`. However, in CentOS 6.4 with yum-3.2.29-40.el6.centos.noarch:

```python
>>> import rpmUtils.arch
>>> rpmUtils.arch.getBaseArch()
'i386'
>>> rpmUtils.arch.getBaseArch(None)
'i386'
>>> rpmUtils.arch.getCanonArch()
'i686'
>>>
```

This little thing made the `pkg.latest` state fail, and also the `pkg.latest_version` module function.
Merge pull request #5205 from shadowfax-chc/npm-fix

Fixed issue with npm.install for npm>=1.2.21.
Merge pull request #5207 from shadowfax-chc/mdadm-shadowing-fix

Fixed shadowing built-in in mdadm module. Ref #5085
Merge pull request #5208 from s0undt3ch/hotfix/yumpkg-fix

Replace `rpmUtils.arch.getBaseArch()` with `rpmUtils.arch.getCanonArch()`
Merge pull request #5206 from l2ol33rt/develop

Adding argument passing to cmd.script state
Merge pull request #5204 from basepi/missingsls5048

Output an error if no matching sls file is found, Fix #5048