Remove std::cast::transmute_immut_unsafe

It can be done in safe code using `as *T`.
rustc: Prevent false positives in crate loading

Previously, any library of the pattern `lib<name>-<hash>-<version>.so` was
>considered a candidate (rightly so) for loading a crate. Sets are generated for
each unique `<hash>`, and then from these sets a candidate is selected. If a set
contained more than one element, then it immediately generated an error saying
that multiple copies of the same dylib were found.

This is incorrect because each candidate needs to be validated to actually
contain a rust library (valid metadata). This commit alters the logic to filter
each set of candidates for a hash to only libraries which are actually rust
libraries. This means that if multiple false positives are found with the right
name pattern, they're all ignored.

Closes #13010
auto merge of #13015 : tbu-/rust/pr_remove_immut, r=alexcrichton

Remove std::cast::transmute_immut_unsafe.
It can be done in safe code using `as *T`.
auto merge of #13017 : alexcrichton/rust/issue-13010, r=huonw

Previously, any library of the pattern `lib<name>-<hash>-<version>.so` was
>considered a candidate (rightly so) for loading a crate. Sets are generated for
each unique `<hash>`, and then from these sets a candidate is selected. If a set
contained more than one element, then it immediately generated an error saying
that multiple copies of the same dylib were found.

This is incorrect because each candidate needs to be validated to actually
contain a rust library (valid metadata). This commit alters the logic to filter
each set of candidates for a hash to only libraries which are actually rust
libraries. This means that if multiple false positives are found with the right
name pattern, they're all ignored.

Closes #13010
std: Add Vec to the prelude

This is an incredibly common type, and it is expected to be used in many many
places. This type should be in the prelude.
rustc: Default the ~[] lint to allow for now

Most of the standard distribution is still using ~[] instead of Vec, so this
lint is essentially useless currently. When the standard distribution has been
ported to not use ~[], then we can turn the lint back on.
Removing imports of std::vec_ng::Vec

It's now in the prelude.
auto merge of #13020 : alexcrichton/rust/vec, r=brson

The commits have the details.
Register new snapshots
auto merge of #13026 : alexcrichton/rust/snapshots, r=huonw