Properly account for killed tasks.

The TaskState class's isFinished() method didn't return true for
KILLED tasks, which means some resources are never reclaimed
for tasks that are killed. This also made it inconsistent with the
isFinished() method used by CoarseMesosSchedulerBackend.
Reuse the set of failed states rather than creating a new object each time
Merge pull request #818 from kayousterhout/killed_fix

Properly account for killed tasks.