This patch adds index support for GoToDefinition -- when we don't get the
definition from local AST, we query our index (Static&Dynamic) index to
get it.
Since we currently collect top-level symbol in the index, it doesn't support all
cases (e.g. class members), we will extend the index to include more symbols in
the future.
Note: the newly-added test fails because of a DynamicIndex issue -- the symbol is
overwritten instead of merging.
nit: drop the second const here? we don't normally bother to mark by-value parameters as const (particularly not in declarations)