AI Changes - consider closing in

The 'AI Considers advancing before firing' change seemed interesting, and trying to design a skills architecture was doing my head in.

I've removed the try...except thing from the Dispatcher, because my AI code was throwing type errors, and the try...except was doing my head in.
By separating the lookup of the ui_action (within the try...except block) from taking the ui_action, we allow proper exception handling to occur when exceptions are triggered within the called function, instead of returning bogus exceptions that assume the lookup has failed, when the problem is something completely different.