Rework the clause in fix_def_expr() that deals with noInit semantics.

Some of the logic in that clause can be simplified, by
* observing that there is an "if ... else" controlled by (isNoInit).
* observing that this is followed by an "if ... else" controlled by (init).
* copying the second "if ... else" in its entirety at the tail of the "if" and "else"
clauses in the preceding "if ... else" statement.
* observing !isNoInit ==> !init and simplifying accordingly.

Following this, I observed that the variables typeTemp was used only in the outer "else"
clause (isNoInit == false), so I moved its declaration inside that clause.  I also copied
the declaration of initCall closer to its use in each clause.