Move halo clearing from unit_map.cpp to lua.cpp.

Apparently, halos were not getting redrawn when the AI moves units
around for its calculations. Instead of adding a bunch of not really
necessary invalidations (to get the halos redrawn), restrict halo
clearing to a case where it is needed (Lua's extract_unit, which is
used by [move_unit]).

Also add an invalidation to Lua's put_unit, in case someone's Lua code
attempts to do something similar to the C++ AI.

This replaces r56143.


git-svn-id: http://svn.gna.org/svn/wesnoth/trunk@56384 75b3775d-3801-0410-9e12-e2e43121521d