Squirrel away the JIT contexts into TLS when done

This prevents attempting to run deallocated code (which is no longer present
always)
Add CONTRIBUTING.md and RELEASES.txt to release tarball. Closes #7561.
Use concrete types in glue functions

We used to have concrete types in glue functions, but the way we used
to implement that broke inlining of those functions. To fix that, we
converted all glue to just take an i8* and always casted to that type.

The problem with the old implementation was that we made a wrong
assumption about the glue functions, taking it for granted that they
always take an i8*, because that's the function type expected by the
TyDesc fields. Therefore, we always ended up with some kind of cast.

But actually, we can initially have the glue with concrete types and
only cast the functions to the generic type once we actually emit the
TyDesc data.

That means that for glue calls that can be statically resolved, we don't
need any casts, unless the glue uses a simplified type. In that case we
cast the argument. And for glue calls that are resolved at runtime, we
cast the argument to i8*, because that's what the glue function in the
TyDesc expects.

Since most of out glue calls are static, this saves a lot of bitcasts.
The size of the unoptimized librustc.ll goes down by 240k lines.
remove new man pages on make uninstall
Rename print!()/println!() to printf!()/printfln!()

The new names make it obvious that these generate formatted output.

Add a one-argument case that uses %? to format, just like the other
format-using macros (e.g. info!()).
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
auto merge of #7768 : sfackler/rust/containers, r=huonw

See #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.
auto merge of #7778 : tedhorst/rust/manuninstall, r=cmr

The new man pages: rust.1, rustdoc.1, rusti.1, and rustpkg.1 were not being removed with make uninstall.
auto merge of #7779 : kballard/rust/print-macro-args, r=alexcrichton

The new names make it obvious that these generate formatted output.

Add a one-argument case that uses %? to format, just like the other
format-using macros (e.g. info!()).
auto merge of #7781 : dotdash/rust/glue, r=huonw

We used to have concrete types in glue functions, but the way we used
to implement that broke inlining of those functions. To fix that, we
converted all glue to just take an i8* and always casted to that type.

The problem with the old implementation was that we made a wrong
assumption about the glue functions, taking it for granted that they
always take an i8*, because that's the function type expected by the
TyDesc fields. Therefore, we always ended up with some kind of cast.

But actually, we can initially have the glue with concrete types and
only cast the functions to the generic type once we actually emit the
TyDesc data.

That means that for glue calls that can be statically resolved, we don't
need any casts, unless the glue uses a simplified type. In that case we
cast the argument. And for glue calls that are resolved at runtime, we
cast the argument to i8*, because that's what the glue function in the
TyDesc expects.

Since most of out glue calls are static, this saves a lot of bitcasts.
The size of the unoptimized librustc.ll goes down by 240k lines.
Implemented FromIterator for std::hashmap
Implemented FromIterator for TrieMap and TrieSet
Allow non-uppercase-statics by default

I think of this as a stylistic opinion which shouldn't necessarily be enforced
by default on all users of rust, but that's just my opinion.
Clean up various warnings throughout the codebase