Add type annotation defs

* ObjectTypeAnnotation
* VoidTypeAnnotation
* ParametricTypeAnnotation
* OptionalParameter

cc @gabelevi @DmitrySoshnikov @jeffmo @benjamn 
I haven't 100% settled on the syntax. I have parametric types on function types like so

  var identity : <T>(x: T) => T;

I think I can do a similar thing for array expressions like

  var id = <T>(x: T): T => x;

But yeah, it's not in esprima or the flow parser yet.