Speed improvements!

Since you were aiming for speed, it felt pretty sad you only got half as fast as `subprocess`... so I fixed that. It should be as fast as `zcat`, but if it's not it hopefully it's still a significant improvement.

I also did a few other things. I wasn't really expecting to do a pull request so they all got bundled up.