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
diff --git a/.gitignore b/.gitignore
index 72f041f..78857a0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,4 @@
 /.settings/
 /bazel-*
 /eclipse-out/
+/.apt_generated/