handle ctrl+c and cleanup before exit

Since we need to cleanup actors and miner both with or without panic, I thought it'd be best to just use `defer` without `recover`. I tested this and found that panic or not, defer cleans up as expected. If I'm missing some case where `recover` is required, let me know.

Ctrl+C was being propagated to any spawned processes so strictly speaking the handler here is superfluous. Just thought it would be a good practice to not rely on the caller (`os/exec`?) and clean it up anyway.
More than should it, it must be.  Otherwise the calling thread (goroutine) could hit the `wg.Wait` call before the goroutines launch call `wg.Add` which is racy since it could periodically cause it to simply fall through.