Add multiple executors

Refactoring / clean up
Adding executors instead of framework messages
In the if branch above, where it says `// Combine pending offers + current offers` but only calls `allOffers.addAll(offers);` it should also call `allOffers.addAll(pendingOffers.values());`

Also, it's not correct to `break; // Never start more than 1 at a time` since then you're not adding the rest off the offers to `remainingOffers`.