Implement more property enforcement

- Getter and setter property functions cannot call with parenthesis.
- Non-@property functions without arguments can call without parenthesis.
Relax @property enforcement for opDispatch

opDispatch function template call should accept setter syntax.
Implement callable getter property

Iff CallExp::e1 is a property, invoke it preferentially.
fix Issue 7538 - All kinds of property functions should be called before getting their types inside typeof