Support OSX frameworks

This adds support to link to OSX frameworks via the new link attribute when
using `kind = "framework"`. It is a compiler error to request linkage to a
framework when the target is not macos because other platforms don't support
frameworks.

Closes #2023
Add struct and type doc comments for extra::url::*
Add struct and type doc comments for extra::url::*

Updated doc comments further, following suggestions from huonw in PR
#10752.
Add placeholder text to the search bar in the documentation.
Add a type="search" to the search bar in the documentation.
rename MutableVector::mut_split(at) to MutableVector::mut_split_at(at)
Fix type inference for proc expressions
Declare librustrt a static dependency of libextra

This wasn't uncovered during testing because the librustrt is available locally
in the build directory (and it needs to be for all the tests to link against it
as well).

Closes #10765
Make the ccache-free case look like the ccache case.

This fixes a problem with `make check` clang -Werror failing due to an
unused -Llib arg.
Add test for #3053. Fixes #3053.
Bring the linkage documentation up-to-date

This includes documentation for all the previous changes done to linking
in #10582. Additionally, this brings the list of feature-gates up-to-date with
the currently recognized list of features.
Add section on closure types to manual
auto merge of #10728 : sanxiyn/rust/proc, r=cmr

Fix #10718.
Add a macro to check if logging at a given label is enabled

This is useful when the information that is needed to do useful logging
is expensive to produce.
c_vec: Modernize

Generally use more modern constructs (such as using `CVec::new()` as
constructor and move to more method usage).

Potentially controversial changes:
* change `get()` to return a reference instead of cloning
* remove `set()`, add `get_mut()` instead
* add an `unwrap()` method that destroys the CVec without running any
  associated destructor
auto merge of #10742 : alexcrichton/rust/frameworks, r=cmr

Commits have the fun details, and scrutiny on the new documentation would be appreciated!
Disallow duplicate bindings of struct fields

Closes #9725
auto merge of #10736 : Blei/rust/fix_c_vec, r=alexcrichton

Controversial change: make the constructors safe, but instead mark the
setters and getters as unsafe. This follows the tradition that construction
of *T is safe, but the access is unsafe instead.
auto merge of #10759 : SiegeLord/rust/placeholder, r=cmr

This makes the search bar more visible.
auto merge of #10771 : pnkfelix/rust/fix-make-check-for-ccacheless-clang, r=acrichto

 This fixes a problem with `make check` clang -Werror failing due to an unused -Llib arg.