Unbreak 'rustc --help'
auto merge of #5609 : Kimundi/rust/incoming, r=catamorphism
tutorial: cleaner libc use statements
tutorial: only Owned types can have a Drop impl
auto merge of #5603 : brson/rust/relnotes, r=brson
Tidy.
rustc: fix linkage of internal static nodes.
auto merge of #5593 : luqmana/rust/inline-asm, r=catamorphism

Clean things up a bit. Also, allow selecting intel syntax in addition to the default AT&T dialect.
libsyntax: Don't allow `impl (Trait) for Type` (with the parentheses).
testsuite: Update and un-xfail test for #4335
auto merge of #5608 : erickt/rust/incoming, r=catamorphism

@nikomatsakis pointed out that `fn read_option<T>(&self, f: &fn() -> T) -> Option<T>` should have this syntax so it can work with custom option types: `fn read_option<T>(&self, f: &fn(bool) -> T) -> T`.

Also, this also includes some `#[inline(always)]` on the memory functions in `src/libcore/unstable/lang.rs` to reduce one level of indirection when allocating memory.
testsuite: Add test for #4333
libcore: Add `print` and `println` to the prelude
testsuite: Add test case for #4325
core: Inline mallocing wrapper functions

As far as I can tell, this doesn't make rust compile any
faster, but it does at least remove one level of indirection
on malloc, which might help speed up some operations.
std: change Decoder::read_option to return a generic type

This allows read_option to be used with a custom option type instead
of just core::Option.
auto merge of #5610 : thestinger/rust/tutorial, r=pcwalton
Fix warning about unused imports in import lists

Before, if anything in a list was used, the entire list was considered to be
used. This corrects this and also warns on a span of the actual unused import
instead of the entire list.
Removing unused imports
auto merge of #5614 : graydon/rust/static-linkage-bug, r=catamorphism

re bug that @nikomatsakis was hitting: when you define a `static` (old: `const`) containing a `&` or `&[]` expression, it will create temporaries (the underlying pointee) by creating a throwaway symbol for each temporary, each with _global_ linkage, and each named `"const"`. LLVM will helpfully rename multiple copies of this throwaway symbol to `"const1"` and `"const2"` and so forth in the _same_ library. But if you have _2 libraries_ -- say, libcore and librustc -- that both do this, the dynamic linker (at least on linux) will happily do horrible things like make the slice in one library point to the bytes of the vector from the other library. This is obviously a recipe for much hilarity and head-scratching.

The solution is to change the linkage to something else, internal or (in the case of this patch) _private_.

It will require a snapshot to integrate this into stage0 and thereby fix the problem / unblock patches that were hitting this in stage1.