Quite a few improvements:
- Support for 4-byte contexts (was 3 previously)
- Support for more than 4 contexts (defaults to 8)
- Much reduced memory footprint (4MB/context instead of 32MB/context)
- Faster.
- Genetic-algorithm based context/weight selection, with the possibility of passing in previous best on command line.
- Somewhat cleaner codebase.
Fix the evil bug where the last byte(s) of the decompressed data would get corrupted. The decompression code underflows the data buffer, and therefore the end of the code itself becomes relevant.