Avoid printf() in struct lvalue test
Removed "dup" comments from codegen
struct temporaries returned from functions can be addressed
x86 backend handling for catching "large" struct returns

returning large structs via stret pointers coming next
Renamed gen_unused_expr() to gen_maybe_struct_expr()

In cases where we're handling structs, a gen_expr() just loads the
address of the struct for a later __builtin_memcpy(). This rename
makes it clearer.
Return statements may return a struct
Moved generic memcpy() into backend code

Need to be able to call it for stret copies
out_pop_func_ret() takes the function's type
Document out_memcpy()
Move x86_stret() into visibility for other functions
Save the stret pointer along with other arguments
Return-copy a struct using the stret pointer on return
Test for struct return-by-value, both caller and callee