auto merge of #10072 : brson/rust/modelines, r=thestinger

These are relics that serve no purpose.
Make addl_lib_search_paths a HashSet (Closes #7718).
Implement another error code found on windows.

Closes #8811
Make the documentation for std::task::spawn_sched render correctly.

Currently each line is a separate bullet point in a list: http://static.rust-lang.org/doc/master/std/task/fn.spawn_sched.html
Fix a typo in a rt::io::signal test

It was pretty much a miracle that these tests were ever passing. They would
never have passed in the single threaded case because only one sigint in the
tests is ever generated, but when run in parallel two sigints will be generated.
auto merge of #10026 : luqmana/rust/mut-pat, r=pcwalton

Fixes #9792.
Ignore a test which never completes on windows

I'm not entirely sure why this is happening, but the server task is never seeing
the second send of the client task, and this test will very reliably fail to
complete on windows.
make the bottom type immediate

Before:

    define void @_ZN3bar19h9d9b965357abc043af4v0.0E({}* noalias nocapture readnone sret, { i64, %tydesc*, i8*, i8*, i8 }* nocapture readnone)

After:

    define void @_ZN3bar19h9d9b965357abc043af4v0.0E({ i64, %tydesc*, i8*, i8*, i8 }* nocapture readnone)
rustpkg: Build dependencies into the correct workspace when using --rust-path-hack

When invoked with the --rust-path-hack flag, rustpkg was correctly building
the package into the default workspace (and not into the build/ subdirectory of the
parent directory of the source directory), but not correctly putting the output
for any dependencies into the default workspace as well.

Spotted by Jack.
Clarify that the SipHash implementation has not be validated for cryptographic purposes.
mark bounds check failures as the cold path

LLVM is unable to determine this for most cases.

http://llvm-reviews.chandlerc.com/D2034 needs to land upstream before
this is going to have an effect. It's harmless to start generating the
expect hint now.
Update workcache to no longer use Sha1.
Remove MD5 and Sha2. Move Sha1 and support code into librustpkg.
Add a comment to Sha1 that its not suitable for cryptogrpahic uses.
Remove dead code from cryptoutil.rs and remove macro_rules feature flag.
Remove MD4.
Integrate the code in the digest and cryptoutil modules directly into the sha1 module.
auto merge of #10098 : alexcrichton/rust/attempts, r=alexcrichton

It was pretty much a miracle that these tests were ever passing. They would
never have passed in the single threaded case because only one sigint in the
tests is ever generated, but when run in parallel two sigints will be generated.
auto merge of #10080 : brson/rust/sched_queue, r=brson

Rebase and update of #9710
auto merge of #9744 : DaGenix/rust/remove-crypto, r=alexcrichton

Remove the Sha1, Sha2, MD5, and MD4 algorithms. SipHash is also cryptographically secure hash function and IsaacRng is a cryptographically secure RNG - I left those alone but removed comments that implied they were suitable for cryptographic use. I thought that MD4 was used for something by the compiler, but everything still seems to work with it removed, so, I guess not.

One thing that I'm not sure about - workcache.rs and workcache_support.rs (in librustpkg) both depend on Sha1. Without Sha1, the only hash function left is SipHash, so I switched that code over to use SipHash. The output size of SipHash is only 64-bits, however - much less than 160 for Sha1. I'm not sure this is a problem. Without other cryptographic hashes in the tree, I'm not sure what else to do. I considered moved Sha1 into librustpkg, but I don't know if that makes sense.

If merged, this closes #9300.