Sped up fgzip + many other small changes.

With these changes, fgzip is faster than zcat for me on Python 2
and almost as fast on Python 3.

There are also general refactorings a few places where exception
safety is improved (the constructor and _reader_proc).

I don't know if these changes support versions less than 2.7
or 3.4 on their respective branches, but that's not my concern ;).