Call Hierarchy Plugin API

Hi folks, I’m taking a stab at implementing https://github.com/eclipse-theia/theia/issues/3765 based on @vrubezhny’s old PR.
The current CallHierarchyService is chosen based on a “languageId”, but the vscode API uses a DocumentFilter. Also, the VS Code API supports incoming and outgoing calls, whereas our current on only supports one call direction.
Supporting those new features would be a breaking change. The question now is how to handle this. The two options would be to have a breaking change, forcing folks to rewrite their CallHierarchyService implementations or I could implement a “legacy” layer that would allow current services to function. The downside there is that the nice names are already taken by the current implementation, so it would be a kind of kludge.
What do you think?

[original thread by Thomas Mäder]

It should be fine to break. I don’t think anyone extend it and it is not used a lot.

cc @kittaakos @alex-tugarev