More type-related features

Check the commit list for the list of features.

Test plan: `npm test` and ran the esprima tester on FB's codebase and ran `jstransform`'s tests with the updated esprima.js