Fix IteratorService performance on big repositories/workspaces
IWorkspaceRoot.findContainersForLocationURI(URI) method performs very
poor on big repositories and workspaces, and gets even worse with lot of
links in the workspace too.
The fix tries first to get the direct workspace resources map hit by
using IWorkspaceRoot.getContainerForLocation(IPath) and only if this
fails, fail over to the slow findContainersForLocationURI method.
This works very fast for almost all cases (constant execution time) and
adds only a small overhead if the matching project/folder is contained
in a *closed* project which overlaps location of another *opened*
project.
Bug: 440722
Change-Id: Ia6eda95f082111355cf96209db588664c59476b6
Signed-off-by: Andrey Loskutov <loskutov@gmx.de>