With tasks like T73993 and D6678, there is a need to use the snap system in Gizmos.
But for this, it is important to find a way to know if the object's geometry has changed before reusing its snap_cache.
The solution was to create a `snap_cache` in `Object::runtime` that is freed whenever the geometry changes.
Benefits:
- Freedom to use the snap API without worrying about changes in the object's geometry.
Disadvantages:
- (None that worth mentioning).