Improve gathering behaviour when a target is not reachable
Units can be stuck in gather states when the target ought to be collectable from, but it's actually unreachable.
A new FINDINGNEWTARGET intermediate state for GATHER will try and find a new, different target to collect from. This should generally improve the behaviour (perfect reachability checks would be required to completely fix it).
Use this also when the target is knowably unreachable / uncollectible.
Fixes #5529
Differential Revision: https://code.wildfiregames.com/D2120