Change timeout for CLI returns

This is a fix for #15905, the intent being that if you set a timeout it will actually time out. If you pass/set a timeout of 0 it will do the checking of minions etc to determine if the job is running. This seems to be a better compromise since the user/admin can decide wether to have timeouts or not
Add CLI timeout tests to standard client tests
Add tests for timeouts to client tests. In addition this makes all of the client functions have the same functionality
Update docs
lint fix
Merge branch 'develop' of github.com:saltstack/salt into develop
Attempt to fix race condition in return

This is due to our pinging of the minions for job returns, there is a non-zero amount of time between the job showing as "not running" on the minion and showing as recieved by the master. This will only be worse on Syndics-- so I'd recommend not using a 0 timeout value unless you have a small cluser
Remove "never timeout" feature
Pylint fix
Merge pull request #15942 from jacksontj/develop

Change timeout for CLI returns