We do some checking in the presentation layer, but in some views where
items might show up several times the model index based heuristic can't
work. So instead let's make TaskRepository::associate() do all the
checking and return an error when needed.
We should really think about porting the repository tests to the fake
akonadi too.