Compiler: Removed some obsolete variant code.

Changed approach to implementing variant functions.
This removes the remnants of the old approach.
Compiler: Hide variant functions from the normal lookup functions.

The idea here is to hide the variant functions from normal lookup,
and then to add a dispatcher function, which calls the appropriate
variant function later.
Compiler: Added new lookup functions for variants.

Added new lookup function really_low_find_variant_identifier()
that looks up based on both name and type.
Type-checker: Added check_call_svalue().

This function is analogous to lower_new_check_call(), but
with an actual argument value instead of an argument type.
It is intended to be used for run-time type checking.
Compiler: Added dispatcher for variant functions. (EXPERIMENTAL!)

This is the first attempt at a generic dispatcher for
variant functions. It seems to work for the trivial cases:

| Pike v7.9 release 5 running Hilfe v3.5 (Incremental Pike Frontend)
| > class foo {
| >>  variant int bar(int a) { return a*2; }
| >>  variant string bar(string s) { return "FOO" + s + "FOO"; }
| >>  variant string bar() { return "FOO"; }
| >> }
| > typeof(foo()->bar);
| (1) Result: function( : string) | function(int : int) | function(string : string)
| > foo()->bar(17);
| (2) Result: 34
| > foo()->bar("BAR");
| (3) Result: "FOOBARFOO"
| > foo()->bar();
| (4) Result: "FOO"
| > foo()->bar(1.2);
| Compiler Error: 1: Bad argument 1 to bar.
| Compiler Error: 1: Expected: string | int.
| Compiler Error: 1: Got     : float.
| > foo()->bar((mixed)1.2);
| Invalid arguments to bar()!
| HilfeInput:1: HilfeInput()->foo()->bar(1.2)
| HilfeInput:1: HilfeInput()->___HilfeWrapper()

Note that it is probably broken for more complicated cases.
Such cases include when the variants have differing modifiers
(including when one of the variants lack the variant modifier).