Fix AttackCharge not picking a new target if the current became invalid

This fixes #5568 by adding a IsReachableTarget check to properly handle units that walk out of range. 
On that note, it would be interesting if the tesla tank used this.