debuginfo: Implemented support for destructured locals.

Conflicts:
	src/librustc/middle/trans/debuginfo.rs
	src/test/debug-info/destructured-local.rs
debuginfo: Support for function arguments. (WIP)
debuginfo: Support for destructured function arguments.
debuginfo: Minor cleanup now possible with new snapshot.
debuginfo: Fixed a few things for PR.
Added default impls for container methods

A couple of implementations of Container::is_empty weren't exactly
self.len() == 0 so I left them alone (e.g. Treemap).
syntax: fix span for obsolete extern visibility error
Deny all warnings by default in doc tests

Allow some common ones that are good for examples, however.
librustc: Respect no_mangle attribute on statics.
librustc: Unify name mangling for functions and statics.
rustc: reorganize driver, replace compile_upto with multiple more-obvious functions.
librustc: Stop trying to make invalid slice with vec in static.
Add test for #5917.
auto merge of #8045 : michaelwoerister/rust/destructuring, r=jdm

As the title says, valid debug info is now generated for any kind of pattern-based bindings like an example from the automated tests: 
```rust
let ((u, v), ((w, (x, Struct { a: y, b: z})), Struct { a: ae, b: oe }), ue) =
    ((25, 26), ((27, (28, Struct { a: 29, b: 30})), Struct { a: 31, b: 32 }), 33);  
```
(Not that you would necessarily want to do a thing like that :P )

Fixes #2533
auto merge of #8060 : Blei/rust/fix-obsolete-extern-visibility-span, r=pcwalton
auto merge of #8067 : alexcrichton/rust/issue-3636, r=huonw

Allow some common ones that are good for examples, however.

Closes #3636
auto merge of #8070 : luqmana/rust/nom, r=alexcrichton

Fixes #5972.
auto merge of #8036 : sfackler/rust/container-impls, r=msullivan

A couple of implementations of Container::is_empty weren't exactly
self.len() == 0 so I left them alone (e.g. Treemap).
make RandomAccessIterator inherit from Iterator
vec: add mut_slice_{to,from}

Closes #8066