Fixes starting and stopping bots at incorrect time

Adds a new attribute to `RunningBot` to keep track of whether a bot is running or not.
If running, it won't start it again. If not running, it won't try to stop it again.

Should fix #343 and fix #344
References #329 (possibly fix as well)