Allow type struct and interface without {}

- Many bug fixed
- Few improvements to unfinished expressions

//cc @shurcooL, @evanphx