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.

It will also throttle relaunch attempts to one try per 10 seconds and
will log the exit code to the Console.

Reference: https://developer.apple.com/library/mac/documentation/Darwin/Reference/Manpages/man5/launchd.plist.5.html