Use Future::CancelOrWait in pathfinder Deinit
If the pathfinding tasks are running, they might reference now-deleted variables. CancelOrWait prevents this.
Remove Future::Cancel() altogether as that was its only use and the functions seems dangerous.
Introduced with rP25657
Patch by: phosit
Reviewed By: wraitii
Differential Revision: https://code.wildfiregames.com/D4831