Include import name in import shadowing error messages.

This partially alleviates the confusing behavior in issue #16597
Update compile-fail tests due to changed diagnostics
Add compile-fail test for missing import shadowing case
libstd: Refactor Duration.

This changes the internal representation of `Duration` from

    days: i32,
    secs: i32,
    nanos: u32

to

    secs: i64,
    nanos: i32

This resolves #16466. Some methods now take `i64` instead of `i32` due
to the increased range. Some methods, like `num_milliseconds`, now
return an `Option<i64>` instead of `i64`, because the range of
`Duration` is now larger than e.g. 2^63 milliseconds.
libstd: Limit Duration range to i64 milliseconds.

This enables `num_milliseconds` to return an `i64` again instead of
`Option<i64>`, because it is guaranteed not to overflow.

The Duration range is now rougly 300e6 years (positive and negative),
whereas it was 300e9 years previously. To put these numbers in
perspective, 300e9 years is about 21 times the age of the universe
(according to Wolfram|Alpha). 300e6 years is about 1/15 of the age of
the earth (according to Wolfram|Alpha).
librustc: Don't ICE with type when name only contain underscores.
extern crate foobar as foo;

Implements remaining part of RFC #47.
Addresses issue #16461.

Removed link_attrs from rust.md, they don't appear to be supported by
the parser.

Changed all the tests to use the new extern crate syntax

Change pretty printer to use 'as' syntax
doc: add missing word
lint: Improve camel case suggestion when empty.
doc: remove trailing shell prompts

because eyesore
doc: use the more convenient 'cargo run' command

This lovely command has already been introduced, so let's take advantage
of it.
doc: remove misleading/confusing info

We have to specify the module and the function name in the example where
the module shares a crate with the executable as well, so remove the
redundant (and potentially confusing) mention.
doc: slight consistency fix

Others in this list are Capitalized, so do it here too.
Adopting FFI changes for iOS
Replace mention of ~T by Box<T> in the FFI guide.
librustc: Restrict transmute intrinsicck to just rust-intrinsic fn's.
Add tests to make sure intrinsicck doesn't apply to non-intrinsic fn's.
librustc: Use Typer's node_ty method instead of free function in ExprUseVisitor.
Add test.
Use the slice repr for ~[T]