std: Ignore a flaky test on freebsd

This test runs successfully manually, but the bots are having trouble getting
this test to pass. Ignore it on freebsd for now.
libstd: Check TMPDIR for android as well and if not set use '/data/local/tmp' instead of '/data/tmp'.
auto merge of #14046 : alexcrichton/rust/ignore-a-test-on-freebsd, r=kballard

This test runs successfully manually, but the bots are having trouble getting
this test to pass. Ignore it on freebsd for now.
auto merge of #14054 : luqmana/rust/at, r=alexcrichton

`/data/local/tmp` seems to be more common.
Use CreateProcessW instead of CreateProcessA

Changed libnative to use CreateProcessW instead of CreateProcessA.  In
addition, the lpEnvironment parameter now uses Unicode.

Added a helper function os::win32::as_mut_utf16_p, which does basically
the same thing as os::win32::as_utf16_p except the pointer is mutable.
Fix make_command_line to handle Unicode correctly

Previously, make_command_line iterates over each u8 in the string and
then appends them as chars, so any non-ASCII string will get horribly
mangled by this function.  This fix should allow Unicode arguments to
work correctly in native::io::process::spawn.
Use Get/FreeEnvironmentStringsW instead of Get/FreeEnvironmentStringsA

Changed libstd to use Get/FreeEnvironmentStringsW instead of
Get/FreeEnvironmentStringsA to support Unicode environment variables.
Test Unicode support of process spawning

Added a run-pass test to ensure that processes can be correctly spawned
using non-ASCII arguments, working directory, and environment variables.
It also tests Unicode support of os::env_as_bytes.

An additional assertion was added to the test for make_command_line to
verify it handles Unicode correctly.