Have output_text and output_list store length at init-time

Grabbing the lengths is a pretty common operation so it's good
to make it fast.
Redo BitstreamReader's substream interface

The old method was a a two step process, like:

BitstreamReader *substream = br_substream_new(BS_BIG_ENDIAN);
reader->substream_append(reader, substream, byte_count);

while the new one is a more sensible:

BitstreamReader *substream = reader->substream(reader, byte_count);

In the process, I've transitioned substreams off the generic buffer.h
interface, which eliminates the ugly "set_rewindable" hack.
Update function-based I/O to use small internal buffers

I think the buffer interface is buffer.h has been
overloaded to do a little too much.  Best to separate some
of that functionality on a case-by-case basis.
BitstreamRecorder/Accumulator now proper subsets of BitstreamWriter

That is, the low-level BitstreamWriter implementation no longer has
dummy bits_written() type methods that don't do anything.
Recorder can be used as a writer by simple typecasting, such as:

BitstreamRecorder *recorder = bw_open_recorder(BS_BIG_ENDIAN);
perform_processing((BitstreamWriter*)recorder);
bits_written = recorder->bits_written(recorder);
recorder->close(recorder);
Update FLAC encoders to avoid using bitstream accumulator

This simplifies the encoders somewhat and avoids a lot of subframe
residual recalculation.
Remove BitstreamAccumulator

The recorder's still pretty essential, but the accumulator was
only really used for FLAC encoding.  Now that the encoder's
using a recorder for that job, the accumulator can go.