Make sure that temp file names don't already exist

When running a build of MLton that uses the mlton-stubs library,
generated file names weren't checked to see if they already existed.
This only affected the first build of MLton, so the error would manifest
when generating c and assembly files.  In particular, it could happen if
you were building the tools in parallel or building two versions of
MLton from seperate directories at the same time.

Furthermore, the mlton-stubs library uses a hard-coded seed for the
random number generator, so the temorary files had the exact same names
between all running instances of MLton.  So when running parallel
builds, the instance that finished first would delete portions of the
other instances' temporary files and those builds would fail.
Merge pull request #20 from caltry/unique-tmp-filenames

Make sure that temp file names don't already exist.

It is noted that this does not completely eliminate the race condition, as the existence check is separated from the creation.  Of course, the `MLTON_IO.mkstemp` and `MLTON_IO.mkstemps` functions were added precisely because it is difficult to atomically create a unique temporary file with the existing functions of the Basis Library.