Refactored make_absolute into functionality on the Path
Improved windows path handling support
Added is_restricted() to path
Removed deprecated `str()` functions in int-template.rs and uint-template.rs
auto merge of #5119 : Kimundi/rust/incoming, r=catamorphism

Removed deprecated `str()` functions in int-template.rs and uint-template.rs
Reimplement type_needs_drop on top of TypeContents
auto merge of #5126 : nikomatsakis/rust/issue-4808-representation-of-extern-fn, r=graydon

r? @graydon
auto merge of #5023 : mitsuhiko/rust/make-absolute-refactor, r=catamorphism

This pull request moves the logic from os::make_absolute() into the path module and fixes path joining for Windows.  It does this by adding an ``unsafe_join()`` function that implements the operating system's path joining semantics.

Additionally it also adds an ``is_restricted()`` method to the trait which will return true if the path points to a windows device file.
Don't warn about 'pub use' statements
Fix using the #[]-style attribute for unused imports
Fix unused imports in the tutorials
auto merge of #5104 : alexcrichton/rust/fix-unused-import-pub, r=catamorphism

The first commit fixes warnings about `pub use` imports because it can't be known whether those are actually used or not.

The second commit fixes using `#[level(unused_imports)]` style control over the emission of warnings. Before it looked like it only worked as a command-line flag.
libsyntax: Forbid `~mut` and `~const`. rs=demuting
libsyntax: Forbid mutable vectors. rs=demuting
librustc: Forbid `pub` or `priv` before trait implementations