Refactor Mesos scheduler.

We now correctly handle/decline insufficient offers.
Re-enqueue tasks that can't run.

When we don't have enough resources to run a task, re-enqueue it to
ensure it runs when resources are available.
Merge pull request #60 from airbnb/decline-insufficient

Refactor Mesos scheduler.