Infiltration refactor

Refactors stuff to make new spy abilities a bit easier to implement.
A better idea would be to replace these hardcoded types with an array in the *Info.  That can be left to another pr.