Add an option to disable the use of the redzone

Disabling the redzone is required in x86-64's kernel mode to avoid interrupts trashing the stack.
auto merge of #15696 : Zoxc/rust/redzone, r=alexcrichton

Disabling the redzone is required in x86-64's kernel mode to avoid interrupts trashing the stack.

I'm not sure if decl_fn is the right place to tag all functions with noredzone. It might have interactions with external functions when linking with bitcode built without -C no-redzone although I see no reason to do that.

I'm not sure how to write a test inspecting the bitcode output for noredzone attributes on all functions either.
librustc: Implement unboxed closures with mutable receivers