Add Win64 calling convention.
Use the correct calling convention for extern rust functions.
Don't use win64 calling convention on 32-bit machines.
Implement more native file I/O

This implements a fair amount of the unimpl() functionality in io::native
relating to filesystem operations. I've also modified all io::fs tests to run in
both a native and uv environment (so everything is actually tested).

There are a two bits of remaining functionality which I was unable to get
working:

* change_file_times on windows
* lstat on windows

I think that change_file_times may just need a better interface, but lstat has a
large implementation in libuv which I didn't want to tackle trying to copy.
auto merge of #10495 : alexcrichton/rust/more-native-io, r=brson

This implements a fair amount of the unimpl() functionality in io::native
relating to filesystem operations. I've also modified all io::fs tests to run in
both a native and uv environment (so everything is actually tested).

There are a few bits of remaining functionality which I was unable to get
working:

* truncate on windows
* change_file_times on windows
* lstat on windows

I think that change_file_times may just need a better interface, but the other
two have large implementations in libuv which I didn't want to tackle trying to
copy. I found a `chsize` function to work for truncate on windows, but it
doesn't quite seem to be working out.
libstd: Change all uses of `&fn(A)->B` over to `|A|->B` in libstd
libextra: Convert uses of `&fn(A)->B` to `|A|->B`.
libsyntax: Change all uses of `&fn` to `||`.
librustc: Change most uses of `&fn()` to `||`.
auto merge of #10568 : pcwalton/rust/more-bars, r=alexcrichton

r? @alexcrichton
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
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.
update manual to reflect &'lifetime syntax
auto merge of #10585 : idupree/rust/master, r=catamorphism
auto merge of #10567 : sanxiyn/rust/bytepos, r=alexcrichton