Add seek() / seekBit() to the Stream / BitStream API.
Export BitStream and Stream APIs.
Expand Stream/BitStream APIs: add eof(), tell(), tellBit().

Util.coerceInput() / Util.coerceOutput have also been reworked to return
more complete stream implementations.
Add Bzip2 decompression from seek-bzip project.
Fix/update stream implementation used in bin/compressjs command-line interface.
Add BWTC, a "bzip-alike" de/compressor.

Uses the same basic algorithms as Bzip2, but uses range encoding instead
of huffman encoding, and doesn't bother to match the file format. Skips
the initial RLE step, which the author of Bzip2 admits was a mistake.
Results in output slightly smaller than Bzip2.
More readable output for 'npm test'.
Add random-access block decompress ability to CLI.
Made BitStream.readBits()/writeBits() safe for reads/writes up to 53 bits.
Add CRC32 checking to Bzip2 decompression.
Move unbwt() function into BWT module.
Borrow a trick from Bzip2 for BWTC compressor: subset alphabet.

We emit a bitmap/tree specifying which symbols are actually used in the
block; this often allows us to work with a smaller alphabet in the remainder
of the MTF/RLE/range encoder pipeline, resulting in slightly smaller output
and slightly quicker encoding.
Non-recursive implementation of previous commit.
De-lint Bzip2 decoder.
Use typed arrays more in Bzip2 decompressor.
Faster implementation of "find last (bit) set" function, and renaming.

ceil(log_2(n)) == fls(n-1); ie, "4" takes 3 bits to represent, but
log_2(4) == 2 exactly.  Borrow an array-lookup implementation of fls from my
JUtil project.
Add testcases for BWT, inspired by jbzip2; fix cyclic wraparound issue.

There are two different definitions for the BWT.  The traditional one
assumes that the string wraps around (ie, each row in the matrix is a
cyclic permutation).  However, it's easier to use a suffix array algorithm
to compute a version of the BWT where the input string is conceptually
terminated with a "lower than any other character" marker.  This effectively
prevents wraparound from influencing the output.

Bzip2 uses the cyclic definition.  I implemented a suffix-array based BWT
algorith, so it uses the non-cyclic definition.

Thanks to http://stackoverflow.com/a/13983026/2192668 I hacked the
suffix-array based BWT to generate the cyclic sort, but at the cost
of doubling the size of the input array.  That's unfortunate.
Add static length-limited huffman allocator, ported from jbzip2.