added ConcurrentSet and use it in TaskTracker

This PR adds a `ConcurrentSet` implementation based on `scala.collection.concurrent.TrieMap` and uses it as task storage in `TaskTracker`.
Why not `underlying.remove(elem)` here?