Re-work temp file handling

Remove the additional layer of indirection, and track temporary files
and directories right after they are created.
[Fix #99] Make `source` preserve the buffer file name

Resolves a blocker for #122.
Fix creation of temporary directories

`make-temp-file` can create directories, too, so let's make use of this
feature.