be able to create very quick shallow copies of a IValueCollection, so
that the original one can be cached.
fix for referencing functions by just the name before it is declared.
fix for object initializers with functions that are not really reported
as functions.
fix that search for declarations never really says they are accurate
(they are default hidden). Now they are accurate if the declaration.node
(identifier) is the same as the name start/end of the Predicates