mangling: Fix bad abbreviations caused by list not being reset cleanly

symbGetMangledName() could add abbreviations and leave them in the list
when mangling an UDT, because that didn't use symbMangleEndAbbrev().

Then if a procedure would be mangled next, it could see those abbreviations
in the list, because even though it used symbMangleInitAbbrev(), that did
only reset the counter, but not the list.

Thus we'd end up with "ghost" abbreviations in the list, and new
abbreviations could be assigned the same id as those ghost ones. Then the
lookup would just use whichever is first...

This was the cause of the issue reported here:
	http://www.freebasic.net/forum/viewtopic.php?f=3&t=22533
and it seems to happen since eca05ccaee0e09c369a603226283231cb5777de2 when
compiling with -gen gcc. It doesn't happen under -gen gas because that does
not use symbGetMangledName() as much (in fact it probably doesn't mangle
UDTs at all, thus side-stepping the issue).