Add type annotation defs

* ObjectTypeAnnotation
* VoidTypeAnnotation
* ParametricTypeAnnotation
* OptionalParameter

cc @gabelevi @DmitrySoshnikov @jeffmo @benjamn 
Yes (although the parser doesn't support it yet)