Typeck: Disallow scalar casts to bare_fn.

Bare functions are another example of a scalar but non-numeric
type (like char) that should be handled separately in casts.
This disallows expressions like `0 as extern "Rust" fn() -> int;`.

It might be advantageous to allow casts between bare functions
and raw pointers in unsafe code in the future, to pass function
pointers between Rust and C.

Closes #8728
Create epub versions of tutorial and ref manual.

Pandoc can create epub verions of the markdown files. Since the docs
are lengthy, epubs are handy to have around. Two rules to create epub
versions of the reference manual and the main tutorial are added here.

Signed-off-by: Noufal Ibrahim <noufal@nibrahim.net.in>
Added skeleton implementation of a B-tree with a few bells and
whistles.  No major functionality added yet (such as insertion and
removal).
Re-arranging some things in btree.rs to accommodate testing.
Addressed style concerns in btree.rs and added it to the lib file.
Added documentation within btree.rs.
Edited comment for docs to show std::io is deleted and replaced by std::rt::io
std: Make atomic types non-copyable. Closes #8380
Define WSAPOLLFD only on mingw 4.x

Fixes #10327
fix android timegm
auto merge of #10341 : willingc/rust/minor-docfix, r=huonw

...rt::io
Added proper //! documentation to the beginning of btree.rs.
auto merge of #10303 : niftynif/rust/master, r=catamorphism

r? @catamorphism
First contribution; contains struct definitions and some useful traits.  Can possibly be improved by removing the dependence on the Clone trait.  This is intended to be the beginning of a long-term project.
tutorial: rewrite the section vectors/strings

This section desperately needs to be expanded, but removing the
misleading/incorrect information is a priority.

Managed vectors/strings are not covered, as they are feature-gated and
are only a micro-optimization to avoid double-indirection.

Closes #6882
syntax::ext: Make type errors in deriving point to the field itself.

This rearranges the deriving code so that #[deriving] a trait on a field
that doesn't implement that trait will point to the field in question,
e.g.

    struct NotEq; // doesn't implement Eq

    #[deriving(Eq)]
    struct Foo {
        ok: int,
        also_ok: ~str,
        bad: NotEq // error points here.
    }

Unfortunately, this means the error is disconnected from the `deriving`
itself but there's no current way to pass that information through to
rustc except via the spans, at the moment.

Fixes #7724.
auto merge of #10344 : brson/rust/atomiccopy, r=alexcrichton

I didn't try to add clone methods since it's not clear to me which types are appropriate to clone or what the memory ordering should be.
auto merge of #10346 : klutzy/rust/mingw64-32-fix, r=alexcrichton

Fixes #10327
auto merge of #10348 : ksh8281/rust/fix_android_timegm, r=yichoi

fix timegm bug on android
TZ restore not correctly before.
and it cause test case fail (time::tests::run_tests::test_convertions)

with @sammykim
auto merge of #10354 : thestinger/rust/vector, r=huonw

This section desperately needs to be expanded, but removing the
misleading/incorrect information is a priority.

Managed vectors/strings are not covered, as they are feature-gated and
are only a micro-optimization to avoid double-indirection.

Closes #6882
auto merge of #10355 : huonw/rust/deriving-field-spans, r=alexcrichton

This rearranges the deriving code so that #[deriving] a trait on a field
that doesn't implement that trait will point to the field in question,
e.g.

    struct NotEq; // doesn't implement Eq

    #[deriving(Eq)]
    struct Foo {
        ok: int,
        also_ok: ~str,
        bad: NotEq // error points here.
    }

Unfortunately, this means the error is disconnected from the `deriving`
itself but there's no current way to pass that information through to
rustc except via the spans, at the moment.

Fixes #7724.
Add default 'package_id' link meta for crates (with value equal to 'name')