Add multiple executors

Refactoring / clean up
Adding executors instead of framework messages
In addition to storing pendingOffers as a map(slaveID -> offers), when you're evaluating the offers, you can also store a map(task/role -> slaveID/offers) and then you don't have to iterate through the offers so many times.