Support function pointer to member function and property.

This submission is to support function pointer to member function and property. However most of work in this submission is related to code cleanup on codegen. 

Now function pointer to member function and property is supported at language level. For example, 
```
class Foo
{
    X;
    def foo(x)
    {
        return = X  + x;
    }
}
f = Foo();     // create an instance of Foo.
f.X = 42;
fptr_x = Foo.X;         // create a function pointer to Foo.X
fptr_foo = Foo.foo;     // create a function pointer to Foo.foo

r1 = fptr_x(f);         // r1 == 42;
r2 = fptr_foo(f, 100);  // r2 == 142;
```

To support function pointer to member function/property, built-in function Evaluate() needs to be enhanced. I'll fix this issue in the following submissions. 

Language test cases added. Please check them in ProtoTest.MultiLangTests.FunctionPointerTest.