Switch from nullable properties to nullable type annotation nodes

The current way we deal with nullables are by adding `nullable` properties on various nodes. This change switches to wrapping nullable types in a `NullableTypeAnnotation` node. This is a little cleaner since we don't need to add a nullable property on each node. 

The tests were relatively easy to update...just removed all the `nullable: false` and regenerated the three tests that had `nullable: true`