Add get_opt to std::vec
have LLVM print type strings for us

Example:

    void ({ i64, %tydesc*, i8*, i8*, i8 }*, i64*, %"struct.std::fmt::Formatter[#1]"*)*

Before, we would print 20 levels deep due to recursion in the type
definition.
auto merge of #9815 : thestinger/rust/type, r=huonw

Example:

    void ({ i64, %tydesc*, i8*, i8*, i8 }*, i64*, %"struct.std::fmt::Formatter[#1]"*)*

Before, we would print 20 levels deep due to recursion in the type
definition.
rc: fix docstring
auto merge of #9825 : thestinger/rust/rc, r=thestinger
librustc: Don't ICE on packed structs in statics.
Update test for packed structs to also test being placed in statics.
auto merge of #9608 : hmarr/rust/vec-get-opt, r=huonw

This adds `get_opt` to `std::vec`, which looks up an item by index and returns an `Option`. If the given index is out of range, `None` will be returned, otherwise a `Some`-wrapped item will be returned.

Example use case:

```rust
use std::os;

fn say_hello(name: &str) {
  println(fmt!("Hello, %s", name));
}

fn main(){
  // Try to get the first cmd line arg, but default to "World"
  let args = os::args();
  let default = ~"World";
  say_hello(*args.get_opt(1).unwrap_or(&default));
}
```

If there's an existing way of implementing this pattern that's cleaner, I'll happily close this. I'm also open to naming suggestions (`index_opt`?)
librustc: Combine C_struct and C_packed_struct.
auto merge of #9832 : luqmana/rust/sps, r=alexcrichton

Fixes #9830.
fix typos in doc/tutorial.md
auto merge of #9836 : eriklyon/rust/doc-typos, r=alexcrichton
std::libc: rustdoc indicates reexports now
Make Rustdoc strip private fields

In addition, the renderer will add comments to structs and enums saying
that fields or variants have been stripped.
auto merge of #9843 : sfackler/rust/rustdoc-strip-private, r=alexcrichton

In addition, the renderer will add comments to structs and enums saying
that fields or variants have been stripped.

The comments are currently
```rust
// some fields stripped
// some variants stripped
```

I was thinking of changing that to "some private..." but passes other than
strip-private may strip fields or variants as well.

cc @alexcrichton
auto merge of #9844 : bytbox/rust/master, r=alexcrichton
Remove unused abi attributes.

They've been replaced by putting the name on the extern block.

  #[abi = "foo"]

goes to

  extern "foo" { }

Closes #9483.
std::vec: move documentation from impls to traits.

This means the text is visible in rustdoc.
Removing ccdecl

as per https://github.com/mozilla/rust/pull/9606#discussion_r6930872
auto merge of #9848 : huonw/rust/move-trait-doc, r=alexcrichton

This means the text is visible in rustdoc.