common: add typedef of AVRational to Rational
Option: rename "get default value" and "set value" functions

* Remove "Value" to getters of default value: getDefaultValueBool ->
getDefaultBool.
* Remove "Value" to setters of value: setValueBool -> setBool.
Context: split Context / FormatContext / CodecContext into separate files

* New files: FormatContext and CodecContext.
* Rename context file to Context.
codec: rename macro at the beginning of headers

Fit to file name.
AvOutputStream: remove unnecessary functions

* Default copy constructor: automatically generated.
* getVideoCodec / getAudioCodec: not working, and nowhere used. Also
remove them in the abstract based class.
codec: update copy constructors

Call default copy constructor of base class (which is automatically
generated).
ICodec: add enum ECodecType to define if it's for encoding or decoding

* Codec class represents a codec. Currently it concerns only encoding
codec (see Codec::setCodec, avcodec_find_encoder).
* With this commit, the class can manage encoding or decoding
codecs.
* Update constructors of subclasses (VideoCodec, AudioCodec, DataCodec).
* Update constructors of CodedStream and EssenceStream which use these
codec objects.
* Update genericProcessor app: add type when create the codec for dummy.
ICodec: update exception message in initCodecContext
IOutputEssence: move codec attribute to subclasses

* OutputEssence:
     * has a virtual function getCodec, which needed to be implemented
in subclasses.
     * doesn't have any data, remove constructor.
* AvOutputVideo / AvOutputAudio:
     * have a codec (VideoCodec or AudioCodec).
     * implement getCodec function.
     * have a new constructor, to create the codec based on a codecName.
     * avoid static cast to the right type of codec when setProfile.
ICodec: complete destructor implementation
ICodec: this class is abstract

Provide pure virtual destructor.
AvInputAudio: use AudioCodec

* Symmetry with AvOutputAudio:
    * use an AudioCodec.
    * no need to allocate and free AV codec objects ; it is done by our
ICodec class.
AvInputVideo: use VideoCodec

* Symmetry with AvOutputVideo:
    * use a VideoCodec.
    * no need to allocate and free AV codec objects ; it is done by our
ICodec class.
IInputEssence: add documentation
IOutputEssence: clean

* Define destructor the same way as IInputEssence.
AvOuputVideo: clean encodeFrame

Remove unnecessary "this".