Rewrite Chef execution module

1) Change cmd.run to cmd.run_all so the behavior matches
   the documentation
2) Turn colored output off
3) Remove support for postitional arguments, because they didn't
   work anyway
4) Direct log output to a file for cleaner return data
5) Wrap the calls to chef-client and chef-solo in a script command.
   Without this, the only output captured is the log (which is
   what we want to suppress). This technique gives you the information
   about which resources were updated and a summary of the run.
6) Document accepted arguments
New Chef state module
rabbitmq needs HOME env to be set, always set runas to set that var.

Set default user for running rabbitmq cmds to user that salt-minion runs
as. Fix #17226
Revert "default run as root user because ``erlexec`` needs HOME env to be set"

This reverts commit ce91c65a7766fe784f9f87a9be59e47d7551e813.

Already set user to run rabbitmq cmds in rabbitmq module to whom
salt-minion running as.
This allow to specify arbitrary user to run those cmds
but still has a saner default than 'root'.
Setting it as 'root' may not work when salt-minion does not run as 'root'.
add runas parameter for all functions
pep8
Clean up lint errors
Suppress echoing of line in deprecation warnings

This is done by replacing warnings.formatwarning with a replacement
function that ignores the "line" parameter.

This is an ugly hack, and I'm open to better suggestions.
Merge pull request #17298 from terminalmage/warn_until

Suppress echoing of line in deprecation warnings
Merge pull request #17271 from hvnsweeting/hvn/remove-runas-rabbitmq

remove runas in rabbitmq
Merge pull request #17279 from skweezbox/chef

Updates to chef execution module and new chef state module
Fix the release notes note
Merge pull request #17306 from basepi/releasenotesoops

Fix the release notes note
Merge branch '2014.7' into develop

Conflicts:
	salt/modules/rabbitmq.py
	salt/states/rabbitmq_cluster.py