Make cron provider work when Chef is run as non-root user.

Also, move it onto Chef::Mixin::ShellOut.

Signed-off-by: Krzysztof Wilczynski <krzysztof.wilczynski@linux.com>
So the problem here is that this is strictly debian where exit 1 is used for an empty crontab.  On RHEL, exit 1 seems to infrequently occur during a hiccup even though we have a crontab file, so we behave like we don't have a crontab and we incorrectly add a duplicate:  https://tickets.opscode.com/browse/CHEF-1377   We should at least document that failure case correctly here.

What you seem to be doing is just offering the information in the debug log when we hit an exit 1, which doesn't solve the problem, and the comment is a bit confusing as to what it is addressing and why you're debug logging that exception, then raising on all but exit 1 later.