Improved the tags impl regex
Sort trait bounds.

Closes #6334
Fix valgrind.h for Win64.
_WIN32 is defined for 64-bit builds as well, so test for _WIN64 first.
Ensure that Registers struct is 16-byte aligned on x86_64.
This is important when building with --disable-jemalloc: unlike jemalloc,  msvcrt does not align on 16 bytes unless asked to.
libnative should not mess with stack limits in the TIB.  Only libgreen has a legitimate need to set them.
Use mingw64 target spelling.
Use gcc for cross-build linking, not g++.
Fix crash in OsRng when compiling with -O.
Update LLVM
Implement unwinding for Win64.
The original trick used to trigger unwinds would not work with GCC's implementation of SEH, so I had to invent a new one: rust_try now consists of two routines: the outer one, whose handler triggers unwinds, and the inner one, that stops unwinds by having a landing pad that swallows exceptions and passes them on to the outer routine via a normal return.
Fix tests.
Remove references to `~[]` in core::kinds::marker docs.
syntax: Handle \r\n in byte string literals

This ended up passing through the lexer but dying later on in parsing when it
wasn't handled. The strategy taken was to copy the `str_lit` funciton, but adapt
it for bytes.

Closes #16278
Added clarification regarding rust_try_inner.
rustdoc: Run all work in a separate task

There's a good long comment explaining why. The tl;dr; is that I have no idea
why this is necessary, but it gets --test to work on windows which is something,
right?

cc #13259
cc #16275
cc rust-lang/cargo#302
Renamed `record_stack_bounds` for clarity.
For a good measure, implemented target_record_stack_bounds for 32-bit Windows as well.
Use byte literals in libcollections tests
Use byte literals in libserialize
Use byte literals in libdebug
Use a byte literal in libregex