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.
Merge pull request #2 from frizull/master

New launchd behavior when agent exit code is not 0