Created utility uninhabited type

In this commit I added a useful utility type, named Void, that encapsulates the
doable but annoying job of creating an uninhabited type. As well, a function on
that type, named absurd, was created which is useful for ignoring the result of
matching on that type. No unit tests were created because it is not possible to
create an instance of this type to test the usage of.

This type is useful because it is like NonCopyable in that it can be used to
create a type with special characteristics without special bloat. For instance,
instead of typing pub struct PhantomType { priv contents : () } for each void
type one may want to use one can simply type pub struct PhantomType (Void);.
This type make such special cases much easier to write.
Remove redundant import error
Fix failing test
Don't create subprocesses for the `rust` command

Instead link against the built libraries and directly invoke those.
Make Float::classify matching more clear for f64 and f32
auto merge of #6439 : bjz/rust/float-classify, r=brson
auto merge of #6348 : sstewartgallus/rust/incoming, r=brson

In this commit I added a useful utility type, named Void, that encapsulates the
doable but annoying job of creating an uninhabited type. As well, a function on
that type, named absurd, was created which is useful for ignoring the result of
matching on that type. No unit tests were created because it is not possible to
create an instance of this type to test the usage of.

This type is useful because it is like NonCopyable in that it can be used to
create a type with special characteristics without special bloat. For instance,
instead of typing pub struct PhantomType { priv contents : () } for each void
type one may want to use one can simply type pub struct PhantomType (Void);.
This type make such special cases much easier to write.
actually fix failing test
auto merge of #6400 : cmr/rust/remove_useless_import_error, r=thestinger

Every unresolved import is reported. An additional error message isn't useful
and obscures (imo) the real errors: I need to take it into account when
looking at the error count.
auto merge of #6438 : alexcrichton/rust/issue-5387, r=thestinger

Instead link against the built libraries and directly invoke those.

Closes #5387
Correct #[always_inline] -> #[inline(always)] and __attribute((...)) -> __attribute__((...)).
auto merge of #6447 : luqmana/rust/6446, r=thestinger

#6446