Add multiple executors

Refactoring / clean up
Adding executors instead of framework messages
Don't know why you'd want to decline offers just because a task is staging. Understandable for ensuring NameNodes/JNs are starting in the right order, but once you're on DNs, you should just launch them as fast as you get offers, I'd think. New minor issue?