sigproc: create the program skeleton

This program will support signal processing algorithms on audio
data. These algorithms (spectogram, cepstrum, mel-frequency
cepstral coefficients, linear predictive coding, etc) are used in
the production of text-to-speech voices such as those found in the
festvox library as used by festival and flite.
ffmpeg_player: pass audio_info to resampler

The resampler helper class does not need a full audio object, it
just needs audio_info (to get the channels, format and frequency
data).
ffmpeg: factor out the frame reading into a helper class
ffmpeg: move the bulk of the play logic into ffmpeg_frame_reader
ffmpeg: move frame management to ffmpeg_frame_reader
Rework the audio reading API.

The media playback API that was originally created was designed
specifically for playback. It sent the audio directly to an audio
object and only stopped when the audio had completed.

This has two issues:

1.  It is difficult to use in cases where the audio data needs to
    be processed (e.g. signal processing);

2.  Playback cannot be interrupted.

This commit reworks the API to a reader model. This gives control
to the caller, addressing the above issues.

NOTE: This change preserves the current behaviour on the callers.
sigproc: print out the frame information of the audio file
sigproc: throw an error if the media object was not created