fixup use of operator !=(attribute_value, const char*)

since we don't use t_string's == operator anymore in this case, c["a"]
!= "" will evaluate to true in case of "a" beeing not existent. To get
the desired behaviour we need to use the .empty() method.

I also add an assert in map_generation for a possible segfault that i
noticed during fixing this.
fix unit(_type)::resistance_filter_matches

fix use of operator == (atribute_value, char*)