Avoids material ID pointers shared across different dependency graphs
causing ownership issues.
The downside of the current implementation is that when multiple
objects are sharing the same mesh they don't show same edit mesh and
cage while editing.
P.S. The cage mesh bounding box should in theory also be moved but
currently it is not causing issues and there is no clarity of where
we will move from here, so didn't want to spend time on it yet.