Introduce marker types for indicating variance and for opting out
of builtin bounds.

Fixes #10834.
Fixes #11385.
cc #5922.
Try to improve comments with concrete suggestions where these types might be used
Correct tests; simplify the cell test
Correct a typo in example text and go into a bit more detail on contravariance
Add std::os::self_exe_name()
Set LD_LIBRARY_PATH on linux for c-dynamic-dylib test

Else, libfoo can't find libcfoo.so.

bar has an rpath, which lets it find libfoo.  But libfoo doesn't have an
rapth that tells it where to find libcfoo
Follow symlinks in sysroot

Before this commit, rustc looked in `dirname $0`/../lib for libraries
but that doesn't work when rustc is invoked through a symlink.

This commit makes rustc look in `dirname $(readlink $0)`/../lib, i.e.
it first canonicalizes the symlink before walking up the directory tree.

Fixes #3632.
Make check-summary.py support file globbing

Fixes the following error when executing `make check-lite`:

    Traceback (most recent call last):
      File "/home/bnoordhuis/src/rust/src/etc/check-summary.py", line 27, in <module>
        map(summarise, logfiles)
      File "/home/bnoordhuis/src/rust/src/etc/check-summary.py", line 10, in summarise
        with open(fname) as fd:
    IOError: [Errno 2] No such file or directory: 'tmp/*.log'
Fix typo in tutorial
Redo exported macro serialization

The old method of serializing the AST gives totally bogus spans if the
expansion of an imported macro causes compilation errors. The best
solution seems to be to serialize the actual textual macro definition
and load it the same way the std-macros are. I'm not totally confident
that getting the source from the CodeMap will always do the right thing,
but it seems to work in simple cases.
Make docs search results URL-addressable

This change adds two improvements to docs searching functionality.

First, search results will immediately be displayed when a ?search=searchterm
query string parameter is provided to any docs url.

Second, search results are now inserted into the browser history, allowing for
easier navigation between search results and docs pages.
Allow opting-out of rpath usage

By default, the compiler and libraries are all still built with rpaths, but this
can be opted out of with --disable-rpath to ./configure or --no-rpath to rustc.

cc #5219
Replace `type_is_pod` contents with `is_pod`

Instead of using the old implementation, make this function use `is_pod`
which is implemented in the `TypeContents` trait.

Note: `type_is_pod` is currently not being used anywhere. I kept it so
that we won't break consistency with the other `type_is` functions.
Implement `has_dtor` method in TypeContents

The patch also adds a `type_has_dtor` function to keep consistency with
the other functions present in this module.
Don't allow static items with `Drop`

Partially addresses #10577
Replace NonCopyable usage with NoPod

cc #10834