Make the async APIs completely parallel (#43)
Make the async APIs completely parallel (#43)

* Make the async APIs completely parallel

This removes the point of coordination introduced in
a9c2f5b9893bd52e01c1d7bc5636f8bd2e77a2e0 when making the APIs
thread-safe, by changing the updates to the result array from `sync` to
`async`.

* Simplify and optimize the async APIs

The parallel batches don’t need to combine their results with every new result,
only when each batch finishes. This is simpler and should probably optimize
the performance of the queues used to combine results, too.
krisk/fuse-swift,krisk/fuse-swift