Cherry pick master_tops restore
Restore master_tops functionality and add more documentation.
Fix stray if statement
Merge commit
Merge commit
Merge commit
Add full gpg public key.
merge commit
merge commot
merge commit
Add pip install check for requirements

If requirements have already installed, the `ret['changes']['requirements']` should be not True
Improved and restructured dockerio module docs
Fixing lint
Make log error punctuation consistent.
Please DO NOT MERGE IMMEDIATELY

Salt targeting is done using the zmq pub/sub mechanism. No filtering is done so all requests go to all minions. This is an attempt to make the requests more target-able. ZeroMQ supports filters on these sockets which are processed publisher side. So the thought is to set it to the minion id and a shared "broadcast" one. Only requests of tgt_type == list will use this. The thought is if we like this we can use other data (mine etc) to determine a more specific target on the master (such as a list) from a glob match etc.

This is more or less backwards compatible, during my testing it still works but the old minion will throw an exception like:

[CRITICAL] An exception occurred while polling the minion
Traceback (most recent call last):
  File "/home/thjackso/src/salt/salt/minion.py", line 1324, in tune_in
    payload = self.serial.loads(self.socket.recv(zmq.NOBLOCK))
  File "/home/thjackso/src/salt/salt/payload.py", line 95, in loads
    return msgpack.loads(msg, use_list=True)
  File "_unpacker.pyx", line 114, in msgpack._unpacker.unpackb (msgpack/_unpacker.cpp:114)
ExtraData: unpack(b) recieved extra data.

So if we decide this is a good idea we'll probably want to wrap the new master side logic in a config option, and just merge in the minion side changes for the first release.

This is another attempt of #10374.
ps: add partial psutil 2.0 compatibility
Raise ValueError instead of returning in utils.schedule.eval
Fix typo
Update to the salt @ scale doc
Merge pull request #14060 from jacksontj/develop

Update to the salt @ scale doc