std::rt: require known stack bounds for all tasks.

We just approximate with a 1 or 2 MB stack for native::start.
Register new snapshots
stop treating `Rc` cycles as unsafe
add a strong/weak reference counted pointer type
rename Strong -> Rc, replacing `rc` with `weak`
port over the old tests to the new `Rc`
auto merge of #10926 : thestinger/rust/rc, r=cmr
auto merge of #11360 : huonw/rust/stack_bounds, r=alexcrichton

We just approximate with a 2MB stack for native::start.
auto merge of #11418 : alexcrichton/rust/snapshots, r=cmr
rustc: Remove one unnecessary transmute_mut
extra::workcache: Remove unused Logger
rustpkg: Recover `-h`/`--help` option
rustpkg: Do not guess version if not given

rustpkg accessed git repo just to read tags and guess package version,
but it's not quite useful since it can be given explicitly from command
line.

This also fixes output of `rustpkg prefer`.
rustpkg::version: Remove enum Version

Replaced by `Option<~str>`.
rustpkg: Compute hash to find crate

Previously rustpkg tried to parse filenames to find crate. Since we now
use deterministic hashes, it becomes possible to directly construct
filename and check if the file exists.