Improve MesosScheduler for Hadoop.

We'll try to allocate map/reduce slots in such a way that we ensure we
utilize the entire cluster effectively.  We'll use up to the maximum
desired number of map/reduce slots, starting from a minimum of 1 map or
1 reduce slot.
Don't prematurely kill TaskTrackers.

We wait for 300,000ms (5 minutes) of inactivity before we kill a running
TaskTracker in case there are still reducers who need the task results.

You may override the timeout by setting the number of milliseconds in
mapred-site.xml with the property 'mapred.tasktracker.idle.timeout'.
Hadoop tutorial version bump (CDH4.2.0 -> 4.2.1).
Shuffle offers before sending to frameworks.

This helps ensure fair allocation of resources.