This patch removes hidden items from code completion.
Hidden items are the ones that are hidden by other items (e.g., by
other items in the child scopes).
This patch addresses a particular problem of a duplicate completion
item for the class in the following example:
struct Adapter { void method(); }; void Adapter::method() { Adapter^ }
We should probably investigate if there are other duplicates in
completion and remove them, possibly adding assertions that it never
happens.