Forbid the Sized bound on unsized types

closes #16800
Remove the branch merging optimisations for slice patterns

They were only correct in the simplest case. Some of the optimisations
are certainly possible but should be introduced carefully and only
when the whole pattern codegen infrastructure is in a better shape.

Fixes #16648.
Make doc search results use <a> tags instead of js for navigating

This has the primary advantage of not interfering with browser default
behavior for links like being able to cmd/ctrl+click on a result to open
the result in a new tab but leave the current page as-is (previous
behavior both opened a new tab and changed the current tab's location to
the result's)
Second approach - using type contents
Updated to new extern crate syntax.
Added warning for old deprecated syntax
Fix MIPS target

Add missing liblibc constants
Fix ICE when casting `&[T]` to `*const [T]`

Closes #16947
Handle custom deref returning fat pointers

Closes #16930
bitv: add larger tests, better benchmarks & remove dead code.

There were no tests for iteration etc. with more than 5 elements,
i.e. not even going beyond a single word. This situation is rectified.

Also, the only benchmarks for `set` were with a constant bit value,
which was not indicative of every situation, due to inlining & branch
removal. This adds a benchmark at the other end of the spectrum: random
input.
libnative/io/file_unix: remove superfluous retry().

These syscalls don't return EINTR:
http://pubs.opengroup.org/onlinepubs/9699919799/functions/fstat.html
http://pubs.opengroup.org/onlinepubs/9699919799/functions/mkdir.html
http://pubs.opengroup.org/onlinepubs/9699919799/functions/unlink.html
http://pubs.opengroup.org/onlinepubs/9699919799/functions/rename.html
http://pubs.opengroup.org/onlinepubs/9699919799/functions/rmdir.html
http://pubs.opengroup.org/onlinepubs/9699919799/functions/readlink.html
http://pubs.opengroup.org/onlinepubs/9699919799/functions/symlink.html
http://pubs.opengroup.org/onlinepubs/9699919799/functions/link.html
http://pubs.opengroup.org/onlinepubs/9699919799/functions/fstatat.html
http://pubs.opengroup.org/onlinepubs/9699919799/functions/utime.html
auto merge of #16811 : nick29581/rust/dst-bug-2, r=nikomatsakis

closes #16800 
r? @nikomatsakis - I'm not 100% sure this is the right approach, it is kind of ad-hoc. The trouble is we don't have any intrinsic notion of which types are sized and which are not, we only have the Sized bound, so I have nothing to validate the Sized bound against.
libtime: Fix adding negative duration to Timespec.
auto merge of #16932 : crabtw/rust/mips, r=alexcrichton

Add missing liblibc constants
auto merge of #16953 : nick29581/rust/dst-bug-7, r=pcwalton

Closes #16947 

r?
Print file permissions in octal form.

Closes #16943.
auto merge of #16954 : nick29581/rust/dst-bug-deref, r=nikomatsakis

Closes #16930 

r?
auto merge of #16961 : huonw/rust/bitv-twiddle, r=alexcrichton

bitv: add larger tests, better benchmarks & remove dead code.

There were no tests for iteration etc. with more than 5 elements,
i.e. not even going beyond a single word. This situation is rectified.

Also, the only benchmarks for `set` were with a constant bit value,
which was not indicative of every situation, due to inlining & branch
removal. This adds a benchmark at the other end of the spectrum: random
input.
Fix some non-FFI-safe types in externs
Use a visitor to look for non-FFI-safe types

Fixes #16250.
auto merge of #16972 : ruud-v-a/rust/timespec-arithmetic, r=alexcrichton

Changing from `Timespec` to `Duration` introduced a bug for negative durations. This fixes that.