Change setup stack states with signals

This pull request adds the following functionality:

- Change setup stack states with signals so that it can be controlled whether changing from one state to another is permitted or not for the setup stack.

My ICLA is listed under "Furkan Bıçak"
I think we should leave setting the runner count to setup goal, instead of deploy. Cause we wouldn't want to redeploy the same runner, just to change the number of runners in the stack. Instead, after a runner is deployed and its stack set up, users should be able to destroy the stack, change the runner count in their plugin configuration (or even from command line with -D args) and set up again without needing to redeploy.