Fix for halos glitching through locations that become shrouded after rendering

Halos are never rendered for shrouded locations, but they are still
unrendered for them. A long-standing issue with [item] halos resulting
from this is that a halo that gets rendered to the screen at least once
for an unshrouded location later causes glitches if that location is
manually shrouded afterwards.

This can be avoided by not unrendering halos for shrouded locations. I
believe this solution makes sense because halos for shrouded locations
are never rendered first, and if the location is shrouded later on, the
display code will redraw the affected locations and overlay shroud on
top, causing the halo object's unrender buffer to become hopelessly
obsolete.
Messenger MAI: fix rare bug in attacks by messenger

This previously resulted in an error message when the messenger had
moves left but no attacks left, a condition that was not checked for.
Purge "human_ai" controller type

This is a fixup of bugfix #18829 (which was commit
736ceaa6c7e81882c9c5b2e932307b1f1ecb3bfd)