Fix mount.active command on FreeBSD.

Uses `mount -p` on FreeBSD as neither of the `/proc/self` files
currently used to determine active mounts exist on FreeBSD systems.
Ensure mount options come before special and node.

Fixes calls to mount where an fstype is specified.
Ensure mount options in remount come before special + node.

Fixes calls to mount where an fstype is specified.
Nasty loop for wheezy XenAPI location
useless else
Merge contextlib fix with Wheezy fix
added "--ask n" to eix-sync (see #5148)
added functions for FEATURES variable
Resolve bug where states/cmd.py _run_check() function was mutating cmd_kwargs (using pop function) which caused subsequent cmd's to runas/user = None (default user) instead of specified user.

unless and onlyif break runas user cmd.[run, script, call]

We will supply a patch to resolve
	modified:   cmd.py
Cleaned up _run_checks()'s docstring and return dictionaries comments

	modified:   cmd.py
Cleaner approach to find out XenAPI on Debian systems
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.