Be more intelligent about slot allocation.

When we get a resource offer, we'll try to be clever about how we
allocate slots to the offers.  Ideally we want to use as much of the
resources available when we have a lot of pending tasks, and we also
don't want to use more resources than we actually need.

Review: https://reviews.apache.org/r/13078
Don't prematurely kill TaskTrackers.

We assign the JobID to the internal Mesos tracker (for the TaskTracker)
rather than the TaskID.

In the case where a TaskTracker has only map tasks assigned to it and
they have all completed, we mustn't terminate the tracker until the
entire job has finished, including the map tasks.

Review: https://reviews.apache.org/r/11119
Kill tasks that never properly launch.

After trying to launch a task tracker, we'll wait up to 5 minutes before
giving up and killing the task.

Review: https://reviews.apache.org/r/11124
Allowed some JVM memory vars to be configured.

Also modified the slot CPU/mem values to be more sane defaults.

Review: https://reviews.apache.org/r/11130