fix Issue 9112 - Uniform construction for built-in types

Support syntax T(), T(v), and new T(v) for basic type T
Use defaultInitLiteral

It is more direct conversion than using typeDotExp(loc, t, Id::init).
And for scalar types, there is no difference. So this will just shorten
compilation pathway.
Added small parser fix