Add Win64 calling convention.
Use the correct calling convention for extern rust functions.
Don't use win64 calling convention on 32-bit machines.
Remove NonCopyable::new

The issue that required it has been fixed.
auto merge of #10575 : sfackler/rust/non-copyable, r=huonw

The issue that required it has been fixed.
add an initial `Gc<T>` stub with the API
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.