Fix code completion performance regression
Use PersistentSymbolTable for functions. It doesn't break the scope.
This should fix issues with slow code-completion when there are
a lot of functions with broken ranges (e.g. from macro expansions).
This happens for some system headers.