Fixed version of #112544 (reverted). `DRW_drawdata_get` reuses the same `DrawData` for all duplis, so they all end up using the same `ObjectHandle` and `ObjectKey`, which breaks motion vectors. * Don't rely on `DRW_drawdata_get` for storing `ObjectKey`s. * Simplify `ObjectKey`. This also solves the issue of objects created "on the fly" always having the `ID_RECALC_ALL` flag. Pull Request: https://projects.blender.org/blender/blender/pulls/113252