Trying to figure out the best way to implement this.

Will squash this later
First implementation that I'm happy with.
doc improvement
exposing 'parallel' as a built-in.
ParallelStep doesn't take implicit body closure, but it wants the start/end pair.

This is tracked as a separate ticket, so I'm just adding a hack for now to get around until we come back to this and resolve it properly.
This test now works
making the error check bit more robust
assisting diagnostics
doc improvement
Newly added head must be registered to CpsStepContext.heads to be recognized as a running head
Got the first baby step test case working
Added a test to handle exceptions
Released this version as 0.2
improve diagnostics
Integrated the version that supports concurrent invocations on the same workspace
HeadCollector must run before the result of the body invocation gets processed

... because the latter can trigger the creation of the end node that builds from the head, as in case the of the parallel step.
Expose descriptor.
This is copied into the core as of 1.567
Added a test that involves restart
Merge commit 'd82cddf5798ec4184c8532ec7fea99832672f218'