Spy class refactoring

This PR:
- Adds the `IEffectiveOwner` interface which is used by `AppearsFriendlyTo/AppearsHostileTo` extensions, and enables us to fix a bug with spies & team health colors (fixed in a later PR).
- Renamed Spy to Disguise - classes mentioning "Spy" were renamed with "Disguise" to feel more generic, since this naming is more appropriate for other units that may disguise (RA2 Mirage tank for example). Disguise also implements `IEffectiveOwner`.

Another followup PR will be to clean up IToolTip's "properties"