New intermediate representation.

The code generator and the analyzer are separate from the parser's [native form](http://hackage.haskell.org/package/language-typescript-0.0.4/docs/Language-TypeScript-Types.html).  Now we can separate parsing from the interpreted semantics, and then analyze the interpreted semantics separately.

Particularly, this is useful for adapting the parser as we may need to.