Fixes / Refactors Void Magnet (#68588)
Fixes / Refactors Void Magnet (#68588)

* Fixes void magnet by improving its code
- When I refactored proc holders, I accidentally changed void magnet to do a `locate() in mob`, isntead of `locate() in mob.actions`, which broke void magnet.
- But I also took the opportunity to improve a code a bit. Instead of working on mutation `on_life()`, it instead is entirely handled by the action itself. Encapsulation, and also gets us closer to possibly removing mutation `on_life()` from life code.

Bawhoppen/-tg-station,ShizCalev/tgstation,ShizCalev/tgstation,tgstation/tgstation,Bawhoppen/-tg-station,tgstation/tgstation,CPTANT/-tg-station,ShizCalev/tgstation,Bawhoppen/-tg-station,ShizCalev/tgstation,MicroWorldwide/SS13-TG-station,tgstation/tgstation,CPTANT/-tg-station,CPTANT/-tg-station,ShizCalev/tgstation,MicroWorldwide/SS13-TG-station,CPTANT/-tg-station,Bawhoppen/-tg-station,tgstation/tgstation,MicroWorldwide/SS13-TG-station,MicroWorldwide/SS13-TG-station,MicroWorldwide/SS13-TG-station,CPTANT/-tg-station,ShizCalev/tgstation,tgstation/tgstation,CPTANT/-tg-station,ShizCalev/tgstation,tgstation/tgstation,MicroWorldwide/SS13-TG-station,Bawhoppen/-tg-station,tgstation/tgstation,Bawhoppen/-tg-station,ShizCalev/tgstation,CPTANT/-tg-station,CPTANT/-tg-station,Bawhoppen/-tg-station,MicroWorldwide/SS13-TG-station,Bawhoppen/-tg-station,MicroWorldwide/SS13-TG-station,tgstation/tgstation