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.