A TempFile points to a file. The file is deleted automatically
when the TempFile object is deleted. TempFile does not create
the file; it just references it.
The constructor is inherited from AnyFile. It can be passed a
filename or nothing (in which case a random filename is chosen).
WARNING: whatever filename you pass to the constructor
WILL BE DELETED when the TempFile object is deleted, even if
it was a pre-existing file!