Greatly simplify Salt's setup.py script logic
Issue #16424: List all providers when creating salt-cloud instance without profile

For this purpose `self.opts['providers']` is as good as `mapper.map_providers_parallel()`
Fix war deployments

Because of wrong filenames for non salt:// files it could not deploy the war file properly.

Also, the logic to determine the version was a bit iffy so I have added a different approach of retrieving a version.
Return empty dict for list_pkgs(purge_desired=True) with macports

This fixes #16828
Use sys.__excepthook__ to be pythonic. cc: s0undt3ch
Add test.assertion
Route module exceptions back to the master

Refs #11613

This first routes events across the minion event bus before kicking them
back to the master. I think this may give us more flexibility in the
future, in terms of error streaming and pluggable error handling,
masterless, etc, etc.
Provide the ability to pass environment variables into pip build process
Point to the correct latest release

This is recurring and #12720 is tracking the issue.
Release notes for 2014.1.13
Point to the correct latest 2014.1.13 release

This is recurring and #12720 is tracking the issue.
Update conf.py as well
Document assigned codenames
Fix weird merge forward in FAQ
Swap out SaltConf15 sidebar image for one with better scaled fonts
Merge remote branch 'upstream/develop' into develop
Fix linting
Add initial unit tests for module.run state function
Register error handlers with reactor as callbacks

This is kind of a wild idea, but here goes.

I modified the reactor system to accept raw functions that act as
callbacks.

This means that we can get rid of loops that check for events and
instead just write functions that can register *theselves* with the
reactor and then have events streamed back to them. This has a lot of
interesting applications, such as facilitating a GUI that, instead of
using an REST API, could simply have a lightweight event-driven API that
registers with the reactor and has updates streamed back to it.

This is a proof of concept of this idea which illustrates minion error
messages being tossed across the event bus and the master registering an
error handler with the reactor to process them.
Improve filter_by() base argument:

  * Change filter_by() base argument to a key in lookup_dict rather
    than a dictionary.  This allows more compact usage and more
    readable use of base values/defaults in the lookup_dict.

  * Change/improve function-local documentation for lookup_dict().

  * Add specific use-case of "base" argument for lookup_dict() in the
    formulas documentation.

  * Expand filter_by() unit testing to validate use of base argument.

  * Add unit test for salt.utils.dictupdate.update() to provide
    complete depth-of-testing of filter_by() which uses
    dictupdate.update().