Activator performance improvement

Shouldn't close the previous PR early. Turns out I did not have to change much of my design.

Pinging previous trackers
@pranavkm
@halter73 
@rynowak
@ipjohnson
@yishaigalatzer 
Just tried it out


    public class Program
    {
        public static void Main(string[] args)
        {
            I1 o = new C1();
            o.M1("");
            Console.ReadLine();
        }

    }

    interface I1
    {
        void M1(string str);
        void M1(string str, params object[] objects);
    }

    class C1 : I1
    {
        public void M1(string str)
        {
            Console.WriteLine("Short");
        }

        public void M1(string str, params object[] objects)
        {
            Console.WriteLine("Long");
        }
    }

This outputs:

Short