kill disconnected forks, restart crashed forks, number of cpus as default

1. Make sure we still disconnect forks and wait until they are disconnected. Make sure to kill them to be sure the processes are really dead. We also kill a fork if the disconnect event takes too long. A possible enhancement of this would be to configure this time interval.

2. Currently we restart all forks that have crashed. This could also be configurable. Perhaps you want the forks to die out and simply kill liveswap when no forks are left, thus creating a crash early scenario. This might be preferrable in a development/staging environment, where you want to notice mistakes quick. However, in a live environment you might want the opposite and want to allow for some to crash but still keep it running.

3. I think default should use the number of cpus/threads the os can offer. Two as default might be bad if you're running your application on a single core, cheap ec2 machine. Also, if the default is number of cpus, you get automatic process scaling simply by running the software on a more powerful ec2 machine.