Add type annotation defs

* ObjectTypeAnnotation
* VoidTypeAnnotation
* ParametricTypeAnnotation
* OptionalParameter

cc @gabelevi @DmitrySoshnikov @jeffmo @benjamn 
Can `ArrowFunctionExpression`s have parametric types? If so, cool!