Add HashSet::with_capacity_and_keys() function

This function can be use to create HashSets before the tls is
initialized.
Rewrite fileinput tests to use std::rt::io

These tests are being very flaky on the bots, and the reason is that files are
being created and then when attempted to get read they actually don't exist. I'm
not entirely sure why this is happening, but I also don't fully trust the
std::io implemention using @-boxes to close/flush/write files at the right time.

This moves the tests to using std::rt::io which is hopefully more robust and
something that we can actually reason about. Sadly, due to #8810, these tests
fail on windows, so they're all ignored on windows right now.
rustc: Fix cstack lint for default methods. Closes #8753
Convert rust_crate_map.cpp to Rust

Conflicts:
	src/libstd/rt/logging.rs
Fix rustpkg install for git repositories
std: rename Option::unwrap_or_default() to unwrap_or()
std: add default implementations to HashMap
std: add default implementations to Option
libsyntax: add Default implementation to OptVec
std: Add Option.{result_or_default,or_default} that uses Default
std: Add Default implementation for vecs
std: Add Option.unwrap_or_else and a couple tests
std: Add Option.{and,and_then,or,or_else}
std: fix a warning
std: Add ToOption/IntoOption/AsOption
std: Add ToResult/IntoResult/AsResult
std: Add ToEither/IntoEither/AsEither
std: Rename {Option,Result}::chain{,_err}* to {and_then,or_else}
std: Add a bunch of Default impls
syntax: add #[deriving(Default)] syntax extension