### Fixed: the Isaac backend refuses an entity name it cannot address, instead of registering it

`add_robot`, `add_object` and `add_camera` on the Isaac backend now route their `name` through the shared `entity_name_error` domain that the MuJoCo and Newton backends already apply, so a name one backend refuses is refused by all three. Previously an empty name, a non-string name and a name containing a NUL were all accepted under `status="success"`.

The name is interpolated into the USD prim path, which turned an unaddressable name into cross-entity corruption: `add_robot("")` resolved to `/World/Robots/` - the container scope for every robot rather than a child prim - and because `remove_robot` prunes its cleanup registry with `startswith(prim_path)`, removing that one robot dropped *every* robot's prim, leaving live robots with nothing tracked for release at teardown. A non-string name keyed the registry with a value the agent-tool surface, where a name always arrives as a JSON string, can never send back, and an unhashable name raised `TypeError` out of the duplicate-name test rather than returning the structured error these methods document as their only failure channel.
