Merge remote-tracking branch 'origin/develop' into develop

* origin/develop:
  The documentation for 'Developing Salt' is missing a critical step for 0.17+ users who wish to utilize the test runner. This commit describes the direct installation of salt-testing.
  -- Please review for accuracy prior to merge --
overstate: Patching to fail on requisite failures.
Edit the docs with new `id` generation process
Switch priority of `socket.getfqdn()` and `/etc/hostname` id guessing
rm trailing whitespace flagged by pylint
Merge pull request #7677 from hulu/pylint

rm trailing whitespace flagged by pylint
Retrieve ID from cache if possible
PEP8 line length
Cache any non-IP guess of minion ID
Only log that we're guessing the ID when that is actually true
Fix out-of-date comment
Fix git.latest to run current branch and ls remote as correct user
Cache the minion id in /var/lib/salt or C:\salt\var\lib
Add NTP state for windows
Update version number in docs to 0.17.0
Merge pull request #7682 from terminalmage/windows-net-states

Add NTP state for windows
Include the encoding header.
Add RabbitMQ functionality

Add support for user tags and permissions to the rabbitmq_user state,
which requires adding support for set_user_tags to the rabbitmq module.

Also add a rabbitmq_plugin state, which requires adding rabbitmq-plugin
support to the rabbitmq module.
Merge pull request #7683 from jesusaurus/feature/rabbitmq

Add more RabbitMQ functionality
Fix PEP-8 E302. Add UTF-8 header.