Fix bogus EOF in bzip2

Summary: Check for EOF the way PHP-NG's bz2 extension does.

The C library is:
 - returning fewer bytes than requested
 - setting BZ_STREAM_END (if I use bz2_bzRead() instead of bz2_bzread()...
   ya rly...

When there's still data left. A read after the C library claims 'EOF' works fine.

I'm finding this by tar jcvf'ing hphp/test/frameworks/vendor/ and trying to extract with PharData (or __SystemLib\TarArchiveHandler) - but I can't get a more isolated repro case. I suspect there's multiple bzip2 streams in the file, but catting together multiple .bz2 files doesn't create this problem. I've also tried bunzip2 + bzip2ing it, and it still has the problem, so it's not something weird about how tar is bzipping.

Reviewed By: @ptarjan

Differential Revision: D1560065