Get rid of a separate codelength huffman tree, reuse length tree for this.

Codelengths are used to decode length, based on which length tree is built.
That means that codelength and length trees' lifetimes are serialized,
advantage of which we take to save bunch of runtime memory.
Don't spend runtime memory on static huffman tables.

Build them dynamically as needed, just for blocks needing them, using the
same objects as dymanic trees. Given how most deflated files structured,
this won't need to be done too often.
Make executable depend on library.
Provide option to have predefined static extra bits tables.

Having a neat algo to create them at runtime is neat, but on embedded
systems, RAM is precious, ROM is less so.
defl_static: Add DEFLATE static Huffman encoding, ported from PuTTY.
genlz77: Generic LZ77 hash compressor.
makefile.elf: Add defl_static and genlz77.
tgunzip: Produce link map file.
Add "tgzip" example.