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()`
Return empty dict for list_pkgs(purge_desired=True) with macports

This fixes #16828
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
Add state.apply function
initial implimentation of #16901

This still needs testing and some functional review

The idea is that state.request is executed and it does a dry run
of the execution and saves what will change securely in a request
file. Then state.check_request will return the requested jobs
state.run_request executes the job. Jobs can also be named, so
a number of jobs can be set up.
apply name capabilities to run_request
flatten and document get_returner_options().

Flattening the get_returner_options() func:
split into several funcs, return early when possible.

Document all arguments (it appears usage is quite a bit complex).

PEP8 almost everything.

(This code is ran very often in Salt. Hello Jenkins!)
drbd overview(without checks)
Merge remote-tracking branch 'upstream/develop' into develop
Merge remote branch 'upstream/develop' into develop
Make python-zypp is not mandatory
Re-implement list_repos and get_repo without python-zypp bindings