Make Stage management work more like other management. Introduce a new AutoWeakPtr that wraps a weak_ptr but allows dereferencing without calling lock()