BUGS:

 - lexer doesn't impose limits on identifiers, this could lead
   to buffer overflows.
   So there are a bunch of strcats and sprintf's, some of them
   marked XXX, that are unsafe.

 - IMCC does produce b0rken PASM files, when compiling .imc source
   files with duplicate local labels.
   Also label fixup handling is different so just don't compile
   PIR files to PASM except for debugging.
