generic types

Summary:
accept polymorphic type annotations as in TypeScript
cleanup of some other rules
TODO: add support for polymorphic type annotations on arrow functions
(conflicts with XHP)

Test Plan:
make tests
(updated tests/js/parsing/type.js)

Reviewers: pad

Reviewed By: pad

CC: bhosmer, bryano

Differential Revision: https://phabricator.fb.com/D1223036