InputStream: update how to manage codec

* Store only a pointer to a codec, and cast it when the user wants the
speicifc codec (VideoCodec if it is a video stream, etc...).
Codec: rename Codec class to ICodec

According to the new class name, destructor is pure virtual.
Codec: rename Codec file to ICodec

According to the new class name : ICodec.
InputStream: remove unused function getPacketDuration

* _packetDuration attribute stored the packet duration of the last added
packet: not what we expected.
* Keep getDuration: it means something for the user to get the duration
of a stream.
OutputStream: remove unused default constructor

No way to update the outputFile of streamIndex attributes, so no sense to create a "default" output stream.
OutpuStream: store reference of outputFile instead of pointer

Could not create an outputStream without an indicated outputFile.
Simplier to store a reference.
Forward declaration of FFmpeg objects: clean

* It was forward declarations of classes, which correspond to struct or
enum in the FFmpeg library.
* These forward declarations cause warning when compile on OS X or
Windows.
DummyVideo / DummyAudio: clean includes
InputVideo / InputAudio: clean includes
Output Essence / Video / Audio: clean includes
Video / Audio EssenceTransform: clean includes
Frame Video / Audio: clean includes
Swig: move "directors" option of AvTranscoder module to main interface file

* This directive concerns all the project.
* So put it the the main swig interface file (avTranscoder.i).
IInputStream: remove default constructor

Automatically generated.
ProgressListener: add IProgress class

* Base class of all possible Progress.
* ProgressListener inherits this base class.
* Add documentation.
* Swig: add feature "director" to the base class.
ProgressListener: rename ProgressListener to ConsoleProgress

the class implements the IProgress, to display a progress bar in
console.
Progress: add NoProgress class

* Manage cases when we need an IProgress but don't care of a progress
bar.
* Use it in avMeta app: we want the file infos, but don't care of the
progress bar.
progress: separate implementation in a cpp file

Fix Transcoder: include iostream (it was done before thanks to the include of iostream in the ProgressListener).
Progress: rename ProgressListener files to progress

* Rename hpp and cpp.
* These files contains all our Progress classes. As a convention, name
the files by starting with a lower case.