extended pmap with kw args
using closures to test error state
Renasme uv_isopen -> isopen
Add callback for write
Make writes task-blocking by default
Actually look for Scheduler in Base
Don't use blocking writes from the Scheduler
Fix build on Linux
Fix write return value for UTF8
Address Jeff's comments
Make async write close the stream on error
`@allocated`: as with timing, don't avoid compilation effects.

This is kind of interesting to be able to measure, and if you really
want to do it twice, you can call `@allocated` twice or execute the
expression first manually, just as you would when timing things.
Fix #3742
pkg2: use triple-quotes for error messages.
fix findmax and findmin with NaNs more generally

a couple tests the last version did not pass
some refactoring in multi.jl

this simplifies things by removing the Waiting table, and using
remotecall_fetch as the most fundamental synchronous function.
remotecall_fetch now uses the level-triggered RemoteValue system,
avoiding a race condition when write operations block.
Merge pull request #3726 from JuliaLang/kf/syncwrite

Makes `write` Task-blocking by default
some small cleanups

replace "UV object is not in a valid state" assertion with an error message,
since it is possible to trigger these from user code.
Use @inbounds in sparse transpose.
Refactor sparse transpose to pass a vector of rowcounts
Pkg2: enter the "deps" directory before executing the build script

Build scripts with a statement like run(`make`) were failing because
we weren't in the right directory (shell commands don't inherit
include()'s rules about load path).