Save labels separately from symbols

This is a problem that became apparent with the new disassembler (naturally right after it was merged),

.sym is a simple format, I hacked function sizes into it, but generally it just supported plain mappings of addresses to labels, which had no size. I just registered them as one byte functions, and it wasn't a problem so far. But now it led to a lot crashes, because labels that were in the middle of a function really screwed the analysis up.

With this the names and all labels are saved in a separate map that is accessed whenever the name associated with an address is needed. It actually speeds the disassembler a bit up, too.