Spawn new tasks onto the primary scheduler by default. #3760
Add at_exit function #4450
core: Add private global data interface. #3915
Add `finally` method for deferred execution
core: Add new weak task API
core: Convert getenv/setenv to use a mutex

This much simpler implementation uses a global mutex
and eliminates the kernel environment channel.
std: Convert uv_global_loop to use pipes
core: Remove private::chan_from_global_ptr. #3915
Remove old comm-based weak task interface
core: Stop using oldcomm
Stop using oldcomm in uv_global_loop tests
Merge remote-tracking branch 'brson/nocommupstream'

Conflicts:
	src/libcore/private.rs
	src/libcore/task/mod.rs
	src/libcore/task/spawn.rs
	src/libstd/net_tcp.rs
	src/libstd/uv_global_loop.rs
	src/libstd/uv_iotask.rs
testsuite: Eliminate uses of structural records from most run-pass tests

Except the pipes tests (that needs a snapshot)
core: Remove structural records in library tests
cargo: remove structural records
fuzzer: Remove structural records
testsuite: Eliminate structural records from run-fail tests
register more-conservative linux snap
Merge remote-tracking branch 'brson/nocommupstream2'