prefer /tmp over /var/tmp
fix utf-8 decoder removing some invalid chars instead of using the unicode replacement character
delay initialisation of builtin types until the language dialect is decided
change tempfiles creation to add the correct extension

We now create a temporary directory which contains the .s and .o
files. The original filename is kept. This allows us to work
more easily with other compilers than gcc.
create a tempsubdir only when needed