astTypeIniFlush(): Fix up assert() triggered with good code since fb137f29

(tests/pointers/new-delete.bas failed to compile)
symbCloneVar(): Handle non-temp vars

Normally we won't clone non-temp vars, because we only clone symbols
created for initializer expressions, so usually that's only temp vars
or labels at best. But the compiler also supports declaring non-temp
variables inside expressions for -lang qb (hVarAddUndecl() from
parser-expr-variable.bas), and it also happens under -lang fb even though
only during error recovery.
ast: Fix astNewCONSTz() to handle structs correctly

And fix the callers to pass the subtype too.

It will now create a nice TYPEINI tree, i.e. a legal AST with
FB_DATATYPE_STRUCT, instead of returning a CONST( 0 ) with STRUCT PTR
type. This prevents the assert() on the astNewASSIGN() result in
ast-node-typeini.bas:hFlushTree() from triggering during error recovery.
Fix error recovery for "VAR sym = illegal expression" to use proper type
parser-proc: Fix operator-cannot-be-static error recovery