Fix the execution of GC evaluation tasks

- Fix the EvaluationTask.equals() method, which used an '==' comparison
  for the String type.
- Fix the removal of EvaluationTask from queuedEvaluationTasks.
- Introduce a listener that runs when a task is finished, instead of
  removing the task from the queue immediately.
- Unit tests are changed accordingly.

Bug: Issue 10702
Change-Id: If411d261f854f5a9ecf517d0b57860554a959cf5
4 files changed