Dotcall cleanup

This submission is to clean up %dot() handler and refactor TraverseDotFunctionCall() which is over 1000 lines of code. 

Run language test cases to ensure no regressions.

Next step is to do more clean up to TraverseDotFunctionallCall() and try to remove %dotarg().