Support linking of rlib files in rustpkg
Fix indention
Add support for ARM thumb architecture
Flag all TLS functions as inline(never)

There's lots of fun rationale in the comments of the diff.

Closes #11683
Stop using hardcoded numbers for -Z options

Instead use a macro and generate them!
Remove obsoleted -Z options

* borrowck_note_pure - unused
* borrowck_note_loan - unused
* no_debug_borrows - unused
* lint_llvm - equivalent to -Z no-prepopulate-passes + --llvm-passes lint
Purge borrowck from libstd

This hasn't been in use since `@mut` was removed
Capitalize debugging opts and make them u64
Remove no-debug-borrows from the makefiles
auto merge of #11665 : alexcrichton/rust/zed-cleanup, r=brson

* Stop using hardcoded numbers that have to all get updated when something changes (inevitable errors and rebase conflicts) as well as removes some unneeded -Z options (obsoleted over time).
* Remove `std::rt::borrowck`
auto merge of #11700 : bharrisau/rust/thumb, r=alexcrichton

To build for the cortex-M series ARM processors LLC needs to be told to build for the thumb instruction set. There are two ways to do this, either with the triple "thumb\*-\*-\*" or with -march=thumb (which just overrides the triple anyway). I chose the first way.

The following will fail because the local cc doesn't know what to do with -mthumb.
````
rustc test.rs --lib --target thumb-linux-eab
error: linking with `cc` failed: exit code: 1
note: cc: error: unrecognized command line option ‘-mthumb’
````

Changing the linker works as expected.
````
rustc test.rs --lib --target thumb-linux-eabi --linker arm-none-eabi-gcc
````

Ideally I'd have the triple thumb-none-eabi, but adding a new OS looks like much more work (and I'm not familiar enough with what it does to know if it is needed).
[std::vec] Rename .get_opt() to .get()
[std::vec] Rename .head_opt() to .head(), drop the old .head() behavior
[std::vec] Rename .last_opt() to .last(), drop the old .last() behavior
[std::vec] Rename .pop_opt() to .pop(), drop the old .pop() behavior
[std::vec] Rename .shift_opt() to .shift(), drop the old .shift() behavior
[std::vec] Rename .remove_opt() to .remove(), drop the old .remove() behavior
[std::path] Rename .container_as_str_opt() to .container_as_str(), drop the old .container_as_str() behavior
[std::str] Rename from_utf8_opt() to from_utf8(), drop the old from_utf8() behavior
[std::str] Rename from_utf8_owned_opt() to from_utf8_owned(), drop the old from_utf8_owned() behavior