Removed limits on struct usage
Updated struct_todo.c
struct_call.c example
Merge branch 'experimental/float' into feature/1st-class-structs
The C standard disallows aggregates in casts
If expressions (?:) can be lvalues internally, for structs/unions
Test for struct in GNU ?: expressions
Store if we're an internal lvalue

i.e. for implementation only, such as structs in ?:
Comma expressions can be addressed
Avoid dereferencing structs in the backend for comma lhs
Statement expressions can be addressed
More logging in struct_todo.c
Avoid dereferencing structs for cast-to-void
Cast to void in struct_todo.c
All uncommented in struct_todo.c
Moved struct passing/returning out of struct_todo.c
Moved struct operations to test
gen_unused_expr() for side-effects and struct-gen avoidance

e.g.
struct A a = ...;
return a, 1; // don't want lvalue-to-rvalue for 'a' here

return i += 1, 5; // can't avoid full code gen here
Avoid printf() in struct lvalue test
Removed "dup" comments from codegen