sparts.fileutils.NamedTemporaryDirectory

A little bit more flexible than ctx.tempdir, NamedTemporaryDirectory
provides the following extra functionality:

- a `name` attribute, which refers to the full temporary path created
- ContextManager protocol, similar to ctx.tempdir, but the obj is returned
- implicit cleanup on dereference (via `__del__`)
- `readfile(relpath)` returns the contents at `relpath` to `self.name`
- `writefile(relpath, contents)` writes `contents` at `relpath` to `self.name`