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>
After thinking about this, I'm wondering if this is the behavior we want.  If a user specifies a cron resource with `user foobar` but doesn't have permissions to update the user to `foobar`, that should be an error.  We should *not* simply attempt to update the crontab of the user we are running as.

However, if a user isn't running as root and doesn't specify the `user` attribute on a cron resource, then I can see an argument for installing the crontab as the running user.