Add pseudocode formatting language to reference documentation.

Convert reference documentation Makefile to gmake
which sacrifices the portability of simple suffix rules
for more powerful ones which can compile the pseudocode compiler.

The pseudocode compiler takes a file and compiles it to LaTeX blocks
for use with the algorithm2e LaTeX package.  The language is simpler
than writing LaTeX directly and smart enough to format common
structures correctly (like multiple variable assignment).

This may seem like a lot of work to cut down on a little LaTeX.
But by adding another pseudocode output format down the line,
along with having the bitdiagrab/bitparse/byteparse utilities output SVG,
the whole mess of reference documentation can be ported to HTML.
Add fixes and tests to ensure FLACs with ID3v2/v1 are tagged correctly.
Convert FLAC decoding documentation algorithms to pseudocode format.

Since pseudocode's a lot easier to write, this is also a good time
to make it a little cleaner.
Preliminary conversion of FLAC encoding documentation.

This is some of the oldest, so a lot of it looks cleaner already.
Convert FIXED subframe encoding documentation.
Convert residual encoding documentation.
Cleanup residual encoding docs and update example.
Convert FLAC encoding documentation.

Pulling out most of the algorithms means about all that's left
are the section headers, address labels, examples and CRC tables.
Covert most of ALAC decoding documentation algorithms.
Convert ALAC encoding documentation.
Convert most of WavPack decoding documentation.
Add libasound2 to URL lookup list in setup.
Finish converting WavPack decoding documentation.

Collapse function/return argument documentation to use less vertical space
and more horizontal space when necessary.
Convert a large chunk of WavPack encoding documentation.

Expand psuedocode's syntax slightly to allow function calls
directly to writes.
Add optional variables to pseudocode INPUT/OUTPUT sections.

This not only opens up formatted variables with subscripts,
but should make it easier to build working examples.
Convert the bulk of WavPack encoding documentation.

Add direct list variable assignments where lists are restricted to
lists of ints or floats.

Although it wouldn't be technically difficult to open up lists to
any sort of expression, restricting them to a single type (ala Haskell)
should be clearer and is generally what they're meant for.
Overhaul Shorten codec documentation.
Convert TrueAudio encoding documentation.
Preliminary MLP documentation conversion.

Add updates to pseudocode format to support empty lists and
generalized data un-reading (which is also used by ALAC).
Complete MLP documentation conversion.

Its parameter handling is rather messy, so hopefully this rebuild
makes it more apparent where the parameters come from and where they go
without building functions that take dozens of arguments.