Use non-zero timeout in update method and don't ignore exceptions.

Timeout in update method was set to 0 which doesn't mean no timeout.
As a result update might not work on loaded systems or slow network.
Also timeout exception was silently ignored.
Now sreq.send() is used in the same way as in other methods.
remove unecessary dict, use other way to remove keys
Add support for mine in masterless configuration.
Use ElementTree from salt.utils._compat

Also remove duplicate import of ElementTree.
Use ET from _compat in s3.py
This has to be an unnoticed bug?
Merge pull request #8116 from holmboe/compat-etree

Use ElementTree from salt._compat
Merge pull request #8101 from hvnsweeting/pkgrepo_refactor

remove unecessary dict, use other way to remove keys
Merge pull request #8117 from s0undt3ch/develop

Loader Test Cases
Allow noarch packages to be found for yum installation.

This resolves the issue where Salt cannot find noarch packages,
despite them being available and installable via yum.
Make salt.utils.which look for a path with .exe on Windows

If the argument passed to this function does not end in .exe and the
minion is running Windows, look for the path + '.exe', allowing both
'cmd.exe' and 'cmd' to be matched.
Optimization for .exe path check

The majority of minions will be running a non-Windows OS, so this tweak
keeps salt.utils.is_windows() from being run unless the non-.exe path
check fails.
Merge pull request #8121 from terminalmage/issue7904

Make salt.utils.which look for a path with .exe on Windows
Move out htpasswd functions into webutil module
Merge pull request #8124 from techhat/webutils

Move out htpasswd functions into webutil module
Add unit test for salt.utils.which

This is a Linux-only test, it will need some mock love to make it
suitable to test for windows paths.
Provide a mocked version the tests to reach windows specific code.
Add some comments to explain whats going on.
Ensure that the variable candidate is referenced 
before assignment
Fix a the return from setting a rabbitmq users tag, this was failing
religiously due to the lack of tabs in the output.

Fix the documentation for the perms attribute (was permissions).

Fix the perms handling, as it is a list of dicts that is called in.