Compiler: Improved handling of variant functions.
The idea here is that a non-variant function restarts the function
definition for the symbol (ie overrides all earlier variants), and
a variant function adds another case to the existing definition for
the symbol (if any).
Also added detection of variant getters and setters.