Micro AIs: add check for valid attacks and error message

This will now check whether the attack intended to be done with
ai.attack is possible and display an error message if it is not.
Micro AIs: add check for valid full move and error message

This now checks whether the move intended to be done with ai.move_full
is possible and display an error message if it is not.
Micro AIs: add check for valid move and error message

This now checks whether the move intended to be done with ai.move is
possible and display an error message if it is not.
Micro AIs: add check for valid stopunit execution and error message

This now checks whether the stopunit execution intended to be done with
ai.stopunit_all, ai.stopunit_attacks or ai.stopunit_moves is possible
and displays an error message if it is not.
Micro AIs: add check for valid recruiting and error message

This now checks whether the recruiting intended to be done with
ai.recruit is possible and displays an error message if it is not.
Forest Animals MAI: remove incorrect wesnoth.put_unit

This needs to be in a synchronized event, which was added right below,
but apparently I forgot to remove this line.
Micro AIs: improve error reporting

Use error() instead of wesnoth.message(), as this also produces a stack
traceback.
Micro AIs: fix errors caused when WML events interfere with AI actions

If a WML event takes a unit off the map, many of the AIs would
previously have run into problems by trying to access a unit that is
then not there any more.  Thus, the existence of the unit needs to be
verified before continuing in cases when this would cause errors.