change compile interface to let gdb manage .o file

this changes the compiler api so that the user passes in the
.o file name.
it then updates gdb to manage the .o file and to remove the
temporary object file directory when done

we may need to import the gnulib mkdtemp module after this