Coalesce

This branch introduces the ability for a stageRunner to "merge" cached environments from another stageRunner. For example, if you ran a model, then re-ran the model from scratch after changing a small thing, you would now have two stageRunner objects: the old trained one, and a new one you just built. We want to take the latter, which has new stage information, and attach to it the modeling environments of the previous run. This we call "coalescing".