Extended types annotations

Type annotations work on function declarations & expressions, formal parameters, class members.

Fixes #463