add support for multi-phase threaded update and render
split part of hierarchical update into a separate multi-threaded phase