Clearer API for getting vars.

- Separate mehod for getting a var only in the current scope.
- Generalized Scope.getVar to work with methods and functions.
@global comment in generated code, format fixes.
Move visitors into separate files.
Eliminated local variables that were used onece.
id may be null.
Fix references to option.
Fixed option reference.
No need to specify config, it's used automatically
Support DEBUG global
Cache the root scope
Fix linter errors
Improved identifier validation.

In addition to correctly detecting various errors, possibly misspelled class names are detected and suggested.
StringBuffer should always get context args.
Removed redundant compiles.

Previously, node.object was potentially compiled up to 3 times. Now it is compiled once and the result is reused.
Better to use hasOwnProperty.
Moved setting DEBUG to runner.
Text tweak
Generate temp receiver vars at file level.
For some reason grunt-jshint was complaining about this
Use chai and should