Cleaning-up AI

Still working out the AI bugs today. I found quite a few minor issues in the AI code that was probably contributing to errors in their behaviors. Things like AIs clearing the wrong interaction when told to stop waiting, and reliance on a "TaskBusy" condition which was unreliable. There may still be some confusion between the AI's "busy" status and the presence of "TaskBusy" conditions. Probably the patter is redundant now.

I also finally bit the bullet and added code to explicitly check if an AI's target object has been deleted. If so, it'll remove the interaction targeting that object and move on to a new task. I was worried this would just put a band-aid on a symptom without solving the problem. And in fact, patching it up may have revealed another problem!

It seems that the AI is releasing the target object prematurely after it finishes walking over to it. This could be a regression caused by my tinkering today, or maybe a new bug. Whatever the case, it's a clear place to start tomorrow. And should hopefully allow me to start working on higher level AI stuff again.