Factored code, improved format engine.
Make eslint happy.
Fixed ArrayLiteral code generation.
Renamed getLvar for clarity.
Eliminate tail recursion, it is not optimized by V8
Factoring and optimizing.
Help was broken.
Renamed some nodes to make it clearer what they are.
Fixed infinite loop.
Wrong format key.
Fixed generation of expressions like 'array[0] = 7'.
Moved cleaning into generateFixtures, more config for mocha.
Make eslint happy.
Use grunt.file instead of fs.
Format tweaks.
Better formatting of generated Objj code, optimizations...

- Using templates for generation of code blocks.
- Prefixed class definition vars with $ to make user code conflicts less likely.
- Renamed some nodes to be more consistent.
- Eliminated node type override, it does not seem to be necessary and makes parent node tracking very difficult.
- Removed temp variables for array lengths, jsPerf shows no speed difference.
- Removed support for @interface in code, it was not implemented fully to begin with, and since Swift eliminates @interface, we might as well go in that direction.
- Generated code for classes is now formatted very nicely with comments that indicate what the source was.
- Factored a bunch of code.
- Accessor methods are not generated if the user supplied them.
- Instead of generating Objj code for accessors and then compiling that, Javascript is generated directly.
- Normalized error messages.
Fixed empty tracking.
Always use trailing commas, IE9 can handle them.

Also removed unnecessary indent() calls.
Generate dot notation shims.