Add Win64 calling convention.
Use the correct calling convention for extern rust functions.
Don't use win64 calling convention on 32-bit machines.
add an initial `Gc<T>` stub with the API
Make BytePos 32-bit
Fix parsing tests
auto merge of #10527 : eholk/rust/win64, r=alexcrichton

This was needed to access UEFI boot services in my new Boot2Rust experiment.

I also realized that Rust functions declared as extern always use the C calling convention regardless of how they were declared, so this pull request fixes that as well.
auto merge of #10576 : thestinger/rust/gc, r=pcwalton

This isn't very useful yet, but it does replace most functionality of `@T`. The `Mut<T>` type will make it unnecessary to have a `GcMut<T>` so I haven't included one. Obviously it doesn't work for trait objects but that needs to be figured out for `Rc<T>` too.
Fix --local-rust-root option on Windows
update manual to reflect &'lifetime syntax
auto merge of #10585 : idupree/rust/master, r=catamorphism
auto merge of #10567 : sanxiyn/rust/bytepos, r=alexcrichton
Remove ty_mac
auto merge of #10590 : sanxiyn/rust/ty-mac, r=thestinger
auto merge of #10584 : klutzy/rust/local-rust-root, r=alexcrichton

Fixes #8756.
Make crate hash stable and externally computable.

This replaces the link meta attributes with a pkgid attribute and uses a hash
of this as the crate hash. This makes the crate hash computable by things
other than the Rust compiler. It also switches the hash function ot SHA1 since
that is much more likely to be available in shell, Python, etc than SipHash.

Fixes #10188, #8523.