FFmpeg Decoder Overhaul

I have today made a series of commits (r2383 to r2410) to SVN which represent a major overhaul of the FFmpeg/LibAV decoder. The decoder now supports a number of additional audio formats (including the requested WV and APE), and several video formats (AVI, FLV, MP4, REC and VOB) from which the audio will be played.

Seeking has also been added within the constraints of the FFmpeg/LibAV's libraries abilities to handle it. This varies by format and codec, and results in some discrepancies (e.g., WMA with MP2 is not seekable but WMA with WMAV1 or WMAV2 is seekable). The libraries are also unable to seek after reading of the input file
reaches the end, so seeking becomes disabled towards the end of the audio.

Streamed audio has not been added due to time constraints.

(I do have some ideas which may improve seeking and implementing streamed audio, but these will have to wait for another time.)

Downmixing to stereo (particularly of AC3 and DTS formats) has also been addressed.

Hopefully, more bugs have been fixed than have been introduced. For those who have unresolved issues with FFmpeg/LibAV and their related formats, it would be worthwhile investigating whether or not those issues still exist and posting the results (good or bad) on the original forum topic.

Of particular interest to developers is the new 'tools' directory which includes a test file generation tool and an MD5 checking tool. When debugging is enabled, MOC now computes the MD5 sum of the samples received from the decoders and these can be checked by the tool against an independant decoding to verify decoder fidelity. (And no, not all decoders currently pass these tests.)

A very large public thank you must go to MOC user "tomaszg" whose assistance has been invaluable throughout, and also to "zeddb" for additional testing.