Introduce Temporary.using for ensuring directory cleanup after use

Raised from Ivory [PR comment](https://github.com/ambiata/ivory/commit/79699cfcf8c80b77000865c8108036425249684c#commitcomment-6873287)

/cc @markhibberd @maxpow4h 
Not really, I might right it as `beOkLike({ case (a, b) => a ==== b })` or there about for some value of `a` and `b`, but it I can't see anything a lot cleaner.