std::rt::io::file: Enable I/O tests on Win32

Enable blocked tests which are now fixed by #9165.

Closes #8810.
std::rt::io::support: Fix ignored test on Win32

Assumes drive C: exists.

Closes #8812.
std::os: Use unicode for last_os_error() on Win32

FormatMessageA may return non-ascii message,
which is encoded as system code page, not utf8.
This may cause `assert!(is_utf8(v))` failure on
some non-English machines.
This patch replaces it with FormatMessageW,
which returns utf-16 message.

Fixes `make check-stage2-std` failure on my machine. :)
std::rt::uv::uvll: Fix uv_req_type on Win32

Also enables request_sanity_check() test.

Closes #8817
std::rt::io::net::tcp: Fix one tcp test on Win32

Fixes `connect_error` part of #8811.
std::rt::uv::uvio: Enable tests on Win32

Closes #8816.
extra::fileinput: Enable tests on Win32

They were blocked by #8810, but it works now.
std::rt::uv::file: Enable tests on Win32

Closes #8814.
Have workcache::test put `foo.c` in the same directory it runs in.

This prevents a stray `foo.c` from being left lying around after tests
run, and it's more consistent with the rest of the code.
auto merge of #9204 : lkuper/rust/workcache, r=alexcrichton

This just removes the stray "foo.c" that `workcache::test` leaves behind when, for example, `make check` runs.
auto merge of #9211 : klutzy/rust/win32-fix, r=alexcrichton