Improve tracking and cleanup of temp files

Attach temporary files to the process object, to reduce global state,
and clean up files as early as possible.  Formerly, we'd not clean up
these files until after error parsing and reporting, now we clean up
right after the process terminated.  Most notably we clean up before
checking whether the buffer is live, so we now clean up copies of killed
buffers properly.

Also, get rid of the term “substituted files”.  It's temporary copies of
the buffer, so let's name things properly.

See bbatsov/prelude#295
Fix destination of byte-compiled files

Really put the generated byte-compiled files into the system's temp dir.

We must not pass the absolute source file name to `make-temp-file`, as
this creates the temporary file along side the source file.  We have to
strip directory components first, so that expansion against the system's
temp dir has any effect.

See bbatsov/prelude#295