Added after_spawn hook with tests and docs

I also had to fix the logic for before_spawn. Returning False prevented the process from running, but did not set the watcher to 'stopped' if all spawns were prevented, causing manage_processes to try to relaunch it again immediately.