pointless cast
Integrated a new version.

This version implements all the operators.
Expanding API to track body invocation.

A prerequisite of the timeout step is the ability for a Step to track
the progress of the body invocation.
Making BodyExecution a Future
Run CpsThread.getStep() from CpsVmThread to avoid concurrency problem
NPE fix. If the callback is added, that's it.
Help debug problems by retaining the caller stack trace of asynchronous invocation
Capturing the 'outcome' to make FindBugs happy.

The previous code was correct, in that the synchronized block establishes read barrier.
HeadCollector needs to be the first to be notified.

... so that by the time the callback of ParallelStep triggers, it has all the heads available.