Refactored make_absolute into functionality on the Path
Improved windows path handling support
Added is_restricted() to path
ARM C ABI implementation
Add non-exhaustive check for match guards

Fix ICE while there is no remained arms after checking guards
Change imported macros to use leaky modules rather than leaky functions.
Hoist macro defs out of inner function
Remove space from the middle of path
Adds (more) test cases for auto_encode.
Macros now leave scope

Macro scope is now delimited by function, block, and module boundaries,
except for modules that are marked with #[macro_escape], which allows
macros to escape.
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.
typo-fixing and name-changes
librustc: offer suggestions for unresolved names.
Move levenshtein distance fn to core::str.
Adjust error messages for compile-fail tests.
Fix --disable-optimize-llvm