Greatly simplify Salt's setup.py script logic
Fix problem with file.append and unicode input
Handle unicode in highstate outputter

Refs #16651
Force saltenv to be a string when passed to state compiler
Load gitfs config values as strings
Load hgfs config values as strings
Load svnfs config values as strings
Don't try to use text_type to force saltenv to be unicode

This breaks salt code that uses raw string formatting (i.e. {0!r})
Update to the latest bootstrap script, v2014.10.28

* Install the python systemd bindings for Arch and Fedora git installations
* Allow cloning from Salt's git repository using HTTPS. saltstack/salt-bootstrap#475
Added inspect option to modules.dockerio.get_containers to return more
graunular information about running containers.
Fix apache_module states to return None and changes dict in test mode

Fixes #16953.
Added changes dict to apache.configfile state in test mode
Cleanup the logic-- no reason to have so many negatives
Increase backoff each iteration by one up to syndic_wait as opposed to by one
Misc comment cleanup in tests
Spelling fixes for docs
Spelling
More spelling
More spelling
Fix for #16939

In the case that the master-master has no immediate downstream minions we were just incrementing the syndic_wait N times and then exiting, not pinging the lower level masters/minions. Now, I've consolidate the jinfo_timeout and timeout_at (since they were the same thing) and changed it to add syndic_wait to the timeout_at if you are a master-master, have more time to add, and would have timed out.