This infers the type from Flow type annotations for variable
declarations and class properties.
This also moves the logic for setting the `type` for typedefs
to the same type inferrer.
Also infer the type for statements like:
```js
const x = 42;
```
same as:
```js
const x: number = 42;
```