Typeck: Disallow scalar casts to bare_fn.

Bare functions are another example of a scalar but non-numeric
type (like char) that should be handled separately in casts.
This disallows expressions like `0 as extern "Rust" fn() -> int;`.

It might be advantageous to allow casts between bare functions
and raw pointers in unsafe code in the future, to pass function
pointers between Rust and C.

Closes #8728
Refine privacy error messages to be more accurate

This stops labeling everything as "is private" when in fact the destination may
be public. Instead, the clause "is inaccessible" is used and the private part of
the flag is called out with a "is private" message.

Closes #9793
Rewrite vec.contains() to be simpler
Implement new methods vec.starts_with()/vec.ends_with()
Rewrite str.starts_with()/ends_with() to be simpler
Register new snapshots
partially fix immediate rvalues

The code generation previously assumed a reference could not alter the
value in a way the destructor would notice. This is an incorrect
assumption for `&mut`, and is also incorrect for an `&` pointer to a
non-`Freeze` type.

Closes #7972
rm rusti from `Makefile.in`
rustdoc: Don't treat "super" specially for urls

This was just incorrectly handled before, the path component shouldn't be looked
at at all (we used absolute paths everywhere instead of relative to the current
module location).

Closes #9861
std: Move size/align functions to std::mem. #2240
track language changes, improve attr handling in GtkSourceView language-spec

Refactors parsing of numerical literals to make it more readable.
Removes 'float'/the 'f' literal suffix and invalid character literals ''' and '\'.
Also makes attribute highlighting more robust and allows urls in attributes to be recognized.
Move sys::refcount to managed::refcount

More progress on #2240
Handle inline asm outputs as write-only in liveness, borrowck and trans.
Fix starts_with() and ends_with().

d4a32386f3b6 broke these since slice_to() and slice_from() must get character
boundaries, and arbitrary needle lengths don't necessarily map to character
boundaries of the haystack.

This also adds new tests that would have caught this bug.
Made `std::task::TaskBuilder::future_result()` easier to use
Fix extra::url::to_str to include the port.

Fixes #9451.
Fixes chris-morgan/rust-http#16.
Update prelude items in Vim syntax.
Highlight \0 in strings and chars in Vim.
Optimize include_bin! for large inputs

Previously an ExprLit was created *per byte* causing a huge increase in memory
bloat. This adds a new `lit_binary` to contain a literal of binary data, which
is currently only used by the include_bin! syntax extension. This massively
speeds up compilation times of the shootout-k-nucleotide-pipes test

    before:
        time: 469s
        memory: 6GB
        assertion failure in LLVM (section too large)

    after:
        time: 2.50s
        memory: 124MB

Closes #2598
Fix an off-by-one in managed::refcount

This fixes a bug I accidentally introduced in #9922