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
Add to_str() for HashMaps, and some basic tests as well.
more back-ticks, less colons
Removed test_hashmap() for the time, being. All tests pass with make check.
Remove core executable
All tests, including newly added test_hashmap() pass. The empty Hash Table doesn't need to be mutable.
Remove extra space between key and value.

1. Extra space removed.
2. Using acc.push_str() instead of str::push_str
3. Update test to reflect representation change.
Add str representation for HashSet.
Add test: test_hashset()
Use acc.push_str() instead of str::push_str(..)

Also added some whitespace to enhance readabilty.
Fix errors in test_hashset().

All tests now pass.
libcore: Change `each_val` to follow new for-loop protocol
auto merge of #6402 : kud1ing/rust/fixes, r=pcwalton
rustc: Don't call type_error_message() with ty_err as the expected type

In #6319, several people mentioned they ran into a "computing
fictitious type" ICE in trans. This turns out to be because some
of my recent changes to typeck::check::_match resulted in type errors
getting reported with ty_err as the expected type, which meant the errors
were suppressed, and typechecking incorrectly succeeded (since the errors
weren't recorded).

Changed the error messages in these cases not to use an expected type at all,
rather, printing out a string describing the type that was expected (which is
what the code originally did). The result is a bit repetitive and the
proliferation of error-reporting functions in typeck::infer is a bit annoying,
but I thought it was important to fix this now; more cleanup can happen later.
libstd: Fix BigUint::is_even
auto merge of #6420 : huonw/rust/rm-exec, r=thestinger
auto merge of #6426 : gifnksm/rust/new-iter, r=catamorphism
Warning police
clean up the last bit of warnings