The rationale for TaskID (or whatever the name will be) is that we want to give
public access to an identify for a task proxy (for comparison, maps and
unordered_maps) without publicly exposing the internal AbstractTask *.
We decided to switch the PerTaskInformation introduced in issue774 to use
TaskProxy instead of AbstractTask* in its public interface. To make this
possible, we will give a get_id() method to TaskProxy that returns the pointer
wrapped in a class similar to StateID.