New launchd behavior when agent exit code is not 0

launchd accepts a KeepAlive dictionary with a SuccessfulExit key that,
when set to NO will automatically relaunch the deamon if it exits with
a error code different than 0.

launchd will throttle relaunch attempts to one try per 10 seconds and
will log the exit code to the Console.