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>
Re: (5), it seems like the most intuitive thing to do would be to default to the user running chef-client, as I'd be somewhat surprised if I noticed Chef trying to update root's crontab when I wasn't running as root.

This would be a behaviour change, and as such would need very clearly communicating and placing within the release cycle, but to my mind it makes more sense. Given that's *not* what we're doing now, a case could be made for sticking with defaulting to root but if we go with that I'd suggest the behaviour change to default to running user be ticketed for a future release.