Find References now supports val/vars

It's now possible to find references to vals and vars

When searching for references to vals/vars we take into account
that there are more than one symbol associated with a val or var.
Vals will generate a symbol for the underlying field and a symbol
for the accessor method (getter). Vars will generate a symbol for
the underlying field, for the getter, and setter methods.

Setter methods can be invoked explicitly i.e. `foo.bar_=(42)` so
when we search for a var we also extend the search to include any
explicit calls to the setter.

Additionally 0arg methods can be overriden by vals and abstract
vars can be overriden by methods, and since we merge overridden
members we need to consider this when comparing symbols.

Fixes #1001679 #1001722