cmp: Use default methods in trait Ord, only require Ord::lt

It will be simpler to implement only one method for Ord, while we also
allow implementing all four Ord methods for semantics or performance
reasons.

We only supply three default methods (and not four), because don't have
any nice error reporting for the case where at least one method must be
implemented, but it's arbitrary which.
Squirrel away the JIT contexts into TLS when done

This prevents attempting to run deallocated code (which is no longer present
always)
Avoid return blocks that have only a single predecessor

Currently, we always create a dedicated "return" basic block, but when
there's only a single predecessor for that block, it can be merged with
that predecessor. We can achieve that merge by only creating the return
block on demand, avoiding its creation when its not required.

Reduces the pre-optimization size of librustc.ll created with --passes ""
by about 90k lines which equals about 4%.
Avoid empty "static_allocas" blocks

When there are no allocas, we don't need a block for them.
Avoid empty "else" blocks

If an "if" expression has no "else", we don't have to create an LLVM
basic block either.
auto merge of #7765 : blake2-ppc/rust/ord-default-methods, r=huonw

Rust will allow to supply default methods for all four methods, but we
don't have any nice error reporting for the case where at least one
method must be implemented, but it's arbitrary which.

So in this case, we require `lt`, but allow implementing the others if needed.
Add print! and println! macros. Closes #7653.
Add CONTRIBUTING.md and RELEASES.txt to release tarball. Closes #7561.
auto merge of #7775 : poiru/rust/issue-7653, r=huonw

This closes #7653.
auto merge of #7763 : dotdash/rust/empty_blocks, r=pcwalton

These commits remove a bunch of empty or otherwise unnecessary blocks, reducing the size of the pre-optimization IR and improving its readability. `librustc.ll` created with `--passes ""` shrinks by about 120k lines which equals about 5% of the total size.
remove new man pages on make uninstall
rustpkg: Implement `uninstall` and `list` commands
rustpkg: Address review comments from cmr
Merge pull request #7749 from catamorphism/rustpkg-list-uninstall

rustpkg: Implement `uninstall` and `list` commands
Split mutable methods out of Set and Map

Fixes most of #4989. I didn't add Persistent{Set,Map} since the only
persistent data structure is fun_treemap and its functionality is
currently too limited to build a trait out of.
Un-broke benchmarks
auto merge of #7776 : poiru/rust/issue-7561, r=cmr

This closes #7561.
When running rusti, consume the JIT contexts and collect them in the parent task
Fix running code via '-Z jit'
auto merge of #7769 : alexcrichton/rust/issue-7732-fix-rusti-again, r=cmr

Turns out this was a more subtle bug than I originally thought. My analysis can be found in #7732, but I also tried to put descriptive info into the comments.

Closes #7732