typechecking is now also done on expressions in "stuff" in GnuAsmExpressions, this fixes CDeclUse problems

computeNextRelevantFeatures missed a case where Opt node entries were not of type AST (in GnuAsmExpressions there were Opt[String] nodes)

added conditionalExpressions for expressions in for/while/do/switch statements

added a function to convert Conditional[Expr] to ConditionalExpr; example:
Choice(def(A),One(Id(a)),Choice(def(B),One(Id(b)),One(null))) -> (id2i_opt.a ? a : ((! id2i_opt.b) ?  : b))

introduced conditional expressions to declarations with assignments; example:
int x = 5 *
#if definedEx(A)
0
#else
1
#endif
;
-> int x =  (id2i_opt.a ? (5 * 0) : (id2i_opt.a ?  : (5 * 1)));
this is NOT done for global declarations, as they have to be constant.
Merge remote-tracking branch 'origin/master'