Fix for struct init vs func literal, and this(a, b); being treated as a constructor declaration

Distinguish between these:
```
auto a = { return 1; }(); // func literal call
auto b = {1, 2, 3}; // structure init
```
And treat:
```
this(blah);
```
as a function call, not constructor decl.