Fix memory leak.

Introduced in b322a6e41038f7bf35f8a433b34c3b18e4a6d169. variance_used
was not being set before use, resulting in leaked trampolines when
calling methods on variant interfaces.

Test case:
```csharp
using System;
using System.Collections;
using System.Collections.Generic;

public interface I<out T> {
    T Current { get; }
}

public struct X<T>: I<T> {
    public T Current { get { return default(T); } } 
}

public class TestCase {
    static object Dummy;

    private void BusyWork(I<object> i) {
        Dummy = i.Current;
    }    

    public void Run() {
        var x = new X<string>();

        for (var i = 0; i < 100000000; ++i) {
            BusyWork(x);
        }   

        Console.WriteLine("Dummy: {0}", Dummy);
    }   

    public static void Main() { new TestCase().Run(); }
}
```