Use try/finally in gzopen(func,...)

Leaner code + simplifies debugging by preserving the original backtrace.