TST: added ensure_clean file cleanup context manager for file based test
avoids leaving temp files around if they are interrupted (during dev),
passes thru exceptions

idiom is:

```
with ensure_clean(path=None) as path:
     .....
```

rather than

```
try:
    ....
finally:
    os.remove(path)
```

@y-p pls have a look when u have a chance
 Looks fine. Preferably, PRs that touch many things at once should land 
right at the start of a release cycle not near it's end, to allow time for hidden
issues to manifest in master before being shipped.
 delay to 0.12....?
 if we do that....need a small fix in test_frame/test_to_csv_dups_cols.....not removing the test file....
 no, this is ok to merge I think. better just go for it or you'll have to redo the whole
thing in two weeks due to conlict hell.
