Refactor grammar check

This branch is for merging grammar checking phase with type-checking phase. The easiest way to review this PR is by commit that start with "Move grammar checking: ..." as each one will be the complete move of a node type 
this might be simpler if you just allow checkGrammarComputedPropertyName to take any node.  It will then check if it's actually a computed property name, and error if it is.  Then you can jsut write:  checkGrammarMethod(node) || checkComputedXXX(node.name);