Fix issues with process groups and refactor service actions

This fixes many issues when handling services with multiple processes.

This also refactors the error checking for the supervisorctl function, making it more generic and reliable.

Each command was checking in it's own way and did not support multiple processes or process_names different than the service_name.

This fixes regressions introduced by #13, which broke multiple process support :-1: