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 placeholder text to the search bar in the documentation.
Add a type="search" to the search bar in the documentation.
Fix type inference for proc expressions
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.
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.
auto merge of #10728 : sanxiyn/rust/proc, r=cmr

Fix #10718.
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!
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.