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
New Guide: crates and modules
auto merge of #16046 : dotdash/rust/call_ignore_alloca, r=pcwalton
auto merge of #15956 : steveklabnik/rust/guide_crates, r=pcwalton

Also fixes a couple of filesystem references that I forgot to change. :sweat_smile: