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>
the cron_empty stuff does the right thing on ubuntu and the wrong thing on redhat if i recall correctly and the exit codes were conflicting and meant different things on the different platforms.  this definitely needs to get really tested by hand on different unix flavors.  ideally we'd get some good functional specs that didn't stub anything out.