[esprima] Move type annotation info for identifiers in to wrapper nodes

Summary:
This changes the parser to wrap annotated identifiers (rather than include type info on the node itself).
The upside to this are (a) location and range info is preserved for the identifier and (b) it's slightly easier for analysis visitation that doesn't care about type annotations to continue to work as expected when one is present.

Test Plan: npm test

Reviewers: benjamn, avik

Reviewed By: benjamn