parallelCollect method.

A solution to issue #334 - regarding async parallel error handling. Added new method, tests and documentation for it.

Generally, this is a version of parallel() which, instead of failing on the first error, continues and gathers all errors. The final callback is called with the error list/object and the result list/object.

I've now implemented this functionality across a few projects - it seems to be something that would be useful in the core.