Don't overwrite the options.output value from build_session_options
Mark allowed dead code and lang items as live

Dead code pass now explicitly checks for `#[allow(dead_code)]` and
`#[lang=".."]` attributes on items and marks them as live if they have
those attributes. The former is done so that if we want to suppress
warnings for a group of dead functions, we only have to annotate the
"root" of the call chain.
auto merge of #11471 : ktt3ja/rust/issue-11380, r=alexcrichton

Dead code pass now explicitly checks for `#[allow(dead_code)]` and
`#[lang=".."]` attributes on items and marks them as live if they have
those attributes. The former is done so that if we want to suppress
warnings for a group of dead functions, we only have to annotate the
"root" of the call chain.

Close #11380 and #11440.
auto merge of #11502 : jhasse/rust/crate_type, r=alexcrichton

This is unnecessary and also leads to a bug: When the user specifies

```
#[crate_type = "rlib"];
```

rustpkg still creates a dylib.

Also it's good not to duplicate functionality. `build_session_options` handles this just fine.
Remove RealExt

These functions are of little utility outside a small subset of use cases. If people need them for their own projects then they can use their own bindings for libm (which aren't hard to make).
Clean up std::num::cmath and remove stale comments
auto merge of #11504 : bjz/rust/std-num-cleanups, r=brson

The gamma and bessel functions are of little utility outside a small specialized subset of use cases, and so they don't really make sense for inclusion in the standard library. The only reason they were included in the first place was to mirror libm, which is not a very good justification. If people need them for their own projects then they can make their own bindings to libm (which isn't too hard).
Bump version to 0.10-pre
auto merge of #11442 : brson/rust/0.10-pre, r=alexcrichton
xfail two tests that hang on Android (#11419)
auto merge of #11506 : brson/rust/androidfixes, r=cmr
Add Clone to TreeSet
auto merge of #11510 : wycats/rust/clone-treeset, r=huonw
rustc: make error messages containing generic more self-explanatory.

Unsuffixed literals like 1 and 1.1, and free type parameters sometimes
have to be printed in error messages, which ended up with <V0>, <VI0>
and <VF0>. This change puts the words "generic" and "integer"/"float"
into the message so it's not a completely black box.
auto merge of #11513 : huonw/rust/generic-errs, r=alexcrichton

Unsuffixed literals like 1 and 1.1, and free type parameters sometimes
have to be printed in error messages, which ended up with \<V0>, \<VI0>
and \<VF0>. This change puts the words "generic" and "integer"/"float"
into the message so it's not a completely black box.
Better error message for semicolon on the last line of a function

closes #8005
auto merge of #11482 : fhahn/rust/issue-8005-better-error-msg-semi-last-stmt, r=alexcrichton

This is a patch for #8005, thanks @lfairy for the hint.

It seems like `block.expr` is None, if the last line of a function has a semi colon (= it ends with a statement).

@kmcallister does this error message cover the intended use cases? 
I'm not sure about the message, the wording and the span could probably be improved.