adding safe_cron init type

Sometimes I need to push out new configurations to a bunch of servers, but I don't want existing servers to get the new configs, for when I am building a replacement set of cloud servers, or if I want to test a new set of configs on a single server.

This adds the ability to prevent Chef client from checking in to chef server, and then to allow it again.

Also adds a safety check to prevent Chef from running on top of itself if the run gets hung up on anything.