Auto-cleanup properties

This is a proposal for having properties doing some cleanup after a property execution. The implementation is not so pretty (`unsafePerformIO`) but this reduces the burden of having to bracket code with `Temporary.using`.
Would this need a different "priority" to avoid being picked up instead? Alternatively, I'm wondering if we should be explicit about what is a cleanup resource? eg.

```
property(t: Temporary => prop(s: String) =>
  // 
))
```

And in that case you _need_ a `Resource`. Probably more annoying though.