Import sed_contains from file.py in win_file.py

Also fix small inconsistency in the sed escape function
Return True even if no changes in `file.sed` (fixes #4481)

Issue #4481 gives a completely valid use case for sed which results in
the `begin` pattern always being present.  `sed` should not return False
in this case.
Make module function `file.sed` return the `cmd.run_all` dict
Use the options var we defined earlier, fix win_file.contains
Check file.sed return code, only return False if it errored
allow dnsutil to query some record types via dig
would choke on non-existant SPF records before.
Extend log message in master.py for peer error
Major overhaul of the minion publish system on the master

This adds a number of things, first the peer system will no longer
use the old static returns interface, nor will it impliment client
components, instead everything will be executed via the localclient
directly.
The full_data return also adds much more data to the return including
the new retcode additions
Merge pull request #4498 from basepi/sed4481

Don't return False on `file.sed` if no changes, check retcode instead
Merge pull request #4499 from hank-at-code42/dnsutil

allow dnsutil to query some record types via dig
allows for npm install to be run on a directory

node.js application configuration is specified in a package.json file,  

to configure a node.js application you must run npm install inside the directory of your application, if this was required to be enforced as a salt state , it is now possible.
Merge pull request #4500 from raadad/patch-1

allows for npm install to be run on a directory
Fixed bug with parsing output of npm.install

When installing packages via "npm install --json" npm also helpfully pumps out the original output this causes an error to be thrown on      
(line 85) "return json.loads(''.join(lines))" as there will still be non json lines.

I added --silent to the npm command on line 60 for good measure, however this does not garuntee that only json will be outputted.


eg Running salt-call npm.install dir=./  on a directory with a package.json that contains an offending package like node-expat will result in the following error on many configurations:

vagrant@precise64:/vagrant/node-example-estore$ sudo salt-call npm.install dir=./    
[INFO    ] Loaded configuration file: /etc/salt/minion
[INFO    ] Executing command 'npm install --json' in directory './'
Traceback (most recent call last):
  File "/usr/bin/salt-call", line 11, in <module>
    salt_call()
  File "/usr/lib/pymodules/python2.7/salt/scripts.py", line 76, in salt_call
    client.run()
  File "/usr/lib/pymodules/python2.7/salt/cli/__init__.py", line 255, in run
    caller.run()
  File "/usr/lib/pymodules/python2.7/salt/cli/caller.py", line 129, in run
    ret = self.call()
  File "/usr/lib/pymodules/python2.7/salt/cli/caller.py", line 71, in call
    ret['return'] = self.minion.functions[fun](*args, **kwargs)
  File "/usr/lib/pymodules/python2.7/salt/modules/npm.py", line 54, in install
    return json.loads(''.join(lines))
  File "/usr/lib/python2.7/json/__init__.py", line 326, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python2.7/json/decoder.py", line 366, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python2.7/json/decoder.py", line 384, in raw_decode
    raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
Merge pull request #4501 from raadad/patch-2

Fixed bug with parsing output of npm.install
Add links to 0.14.1 Windows installers
Merge pull request #4504 from UtahDave/develop

Add links to 0.14.1 Windows installers
Add get_mode to quota system
Merge pull request #4505 from techhat/quota

Add get_mode to quota system
Merge remote-tracking branch 'upstream/develop' into develop