Add multiple executors

Refactoring / clean up
Adding executors instead of framework messages
So you accept 3 launchTask calls, returning TASK_RUNNING for each without starting them, until the 3rd one comes in, at which point you start them all in a specific order?
What happens if you're asked to launch ZKFC three times, instead of one of each? Or what happens if one of the launchTask messages is duplicated for some reason?