OpPredictRandomForest: Re-added LabelsCount slot, which is necessary to determine the output shape without re-training the classifier during setupOutputs().
roi.py: Cleanups.
RequestPool: Use block() instead of wait(), since the request result is not returned.
(This allows clients to clean the request in the notify_finished() handler if desired.)
RoiRequestBatch: Use Request-aware SimpleRequestCondition as the synchronization object.
See also: ee60f29b81229589514ae29df44ee70ff819636e and 90ec486b7503c312efb24322fe619ef6febde420
Added OpCxxBlockedArrayCache, which has the same interface as OpBlockedArrayCache but is backed by a blockedarray.
TODO: Integrate with ArrayCacheMemoryMgr thread to free memory that isn't needed any longer.
tests: Added test OpCxxBlockedArrayCache (a modified version of testOpBlockedArrayCache, plus additional tests).
OpSlicedBlockedArrayCache: Replaced internal blockedarray caches with OpCxxBlockedArrayCaches.
OpTrainRandomForestBlocked: Re-added the MaxLabel slot.  Turns out to be necessary after all.
This essentially undoes commit 831ba02b1df50aa3110e452ad07f6bb2d4101676
OpCxxBlockedArrayCache: Only update bookkeeping status to CLEAN after all pending requests have been serviced.
(Necessary so memory management knows when its safe to delete a block.)
wip