Avoid killing innocent processes with re-used PID

util.command.Command will register atexit function that should kill
process tree of given PID during daemon shutdown.
Unfortunately it's not unregistered when PID no longer exist.

Unregister cleanup function when:
 * command is done, process does not exist anymore
 * process is killed after timeout
 * process refused to die, thread is deadlocked -> we can't control it
anymore and ensure process won't die in the future and we won't kill
innocent process anyway

Also be more polite during cleanup and send SIGTERM first, give process
1 second to shutdown properly and after that send SIGKILL.
Add example launchd plist and option to disable syslog
Fix a few minor bugs

 * fix a few ugly constructions
 * fix requirement yaml -> PyYAML in setup.py
 * fix initialization of Smokerd() without config (KeyError exception)
Merge pull request #3 from fpytloun/master

Avoid killing innocent processes with re-used PID