Support union type annotations in fb-esprima

Summary: These are pretty straightforward. Typescript wrote a good spec for
them here: https://github.com/Microsoft/TypeScript/issues/805

The one tricky thing that we don't currently have a way to parse is a type that
is function type A or function type B. You would need parens like

  (() => string) | (() => number)

or type aliasing like

  type A = () => string;
  type B = () => number;
  var x: A | B = ...;

Test Plan: npm test
Merge pull request #56 from gabelevi/fb-harmony-2

Support union type annotations in fb-esprima
Parse typeof X type annotations

Summary: You can do something like

  var greeterMaker: typeof Greeter = Greeter;

and we should be able to parse it!

Test Plan: `npm test` and ran the esprima tester
Merge pull request #57 from gabelevi/fb-harmony-2

Parse typeof X type annotations
Add type annotations for ArrayPatterns and ObjectPatterns.
Added test with object type with no semicolon
Remove whitespace