Perform expansion before stripping/building a test harness.

This allows macros to create tests and benchmarks.
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.
librustc: allow destructuring of structs with destructors if the pattern has no moves.

This check only works for `match`s, the checks (incorrectly) do not run for patterns in
`let`s.
Issue number on xfailed test
renamed vec::from_slice to vec::to_owned
Add some positive tests for dtor struct destructuring
renamed str::from_slice to str::to_owned
Fixes rusti crashes.

Don't pass the binary name to the LLVMRustExecuteJIT closure; doesn't
seem to be needed, anyhow.
Replace io::println by println as it is now included in prelude.rs
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
Correct testcases that passed because fns with #[test] were stripped before expansion.
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.