Avoid mixing different abstraction levels, remove the conversion of the brush tool into `undo::Type`. Make it simpler to specialize the implementation further for separate PBVH types later. Also fix race condition retrieving write access to an attribute from multiple threads at the same time, and reduce per-PBVH-node overhead.