Generic LZW implementation.