This moves the logic to garrison visibly to a seperate file, to allow it to be used in other context (e.g. being able to tell which units ought to be visibly garrisoned).
With a tad more effort one might even be able to task a turret to "turn in", i.e. go from a visibly garrisoned state to a hidden one.
This could be used in the functionality mentioned in #3488.
Extension:
- Be able to use a TurretHolder without GarrisonHolder (needs some GUI adaptations, perhaps).
As a sideeffect this allows entities without position to garrison, which is strange, but doable now.