avoid scanning all units for a unit filter which gives a location

This adds a specialized implementation of unit filter -- if unit
filter specifies numbers for both x and y (no , - and not "recall")
then to find all matches we just find that position in the unit_map
rather than scan over all units. This happens behind the scenes.
Merge branch 'master' of git://github.com/wesnoth/wesnoth