Omit unnecessary stack slots for ignored return values

If we have an immediate return value that doesn't need to be dropped, we
don't have to create a stack slot for it.
Emit lifetime end markers for allocas for ignored return values
auto merge of #16046 : dotdash/rust/call_ignore_alloca, r=pcwalton