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.
Flush underlying Stream when BitStream is flushed.